/** * Update menu item * * @param MenuItem $item menu item instance * @return MenuItem */ public function updateItem(MenuItem $item) { $item = $this->repo->updateItem($item); $key = $this->getItemCacheKey($item->getKey()); $this->cache->put($key, $item); return $item; }
/** * Move menu item * * @param Menu $menu menu instance * @param MenuItem $item menu item instance * @param MenuItem|null $parent menu item instance * @return MenuItem * @throws InvalidArgumentException */ public function moveItem(Menu $menu, MenuItem $item, MenuItem $parent = null) { if ($parent && $menu->getKey() != $parent->menu->getKey()) { throw new InvalidArgumentException(['name' => 'parent object']); } if ($item->{$item->getParentIdName()}) { $oldParent = $this->repo->findItem($item->{$item->getParentIdName()}); $this->unlinkHierarchy($item, $oldParent); $item->{$item->getParentIdName()} = null; } if ($parent) { $this->linkHierarchy($item, $parent); $item->parentId = $parent->getKey(); } $item->{$item->getAggregatorKeyName()} = $menu->getKey(); $item = $this->repo->updateItem($item); // todo: 캐시 갱신 점검 // 연관 객체 정보들이 변경 되었으므로 객채를 갱신 함 return $this->repo->findItem($item->getKey()); }
/** * Update menu item * * @param MenuItem $item menu item instance * @return MenuItem */ public function updateItem(MenuItem $item) { $this->cache->forget($this->getCacheKey($item->menu->getKey())); return $this->repo->updateItem($item); }
/** * Update menu item * * @param MenuItem $item menu item instance * @return MenuItem */ public function updateItem(MenuItem $item) { $item = $this->repo->updateItem($item); $this->itemBag[$item->getKey()] = $item; return $item; }
/** * Update menu item * * @param MenuItem $item menu item instance * @return MenuItem */ public function updateItem(MenuItem $item) { return $this->repo->updateItem($item); }
/** * Move menu item * * @param Menu $menu menu instance * @param MenuItem $item menu item instance * @param MenuItem|null $parent menu item instance * @return MenuItem * @throws InvalidArgumentException */ public function moveItem(Menu $menu, MenuItem $item, MenuItem $parent = null) { if ($parent && $menu->getKey() != $parent->menu->getKey()) { throw new InvalidArgumentException(['name' => 'parent object']); } if ($item->{$item->getParentIdName()}) { $oldParent = $this->repo->findItem($item->{$item->getParentIdName()}); $this->unlinkHierarchy($item, $oldParent); $item->{$item->getParentIdName()} = null; } if ($parent) { $this->linkHierarchy($item, $parent); $item->parentId = $parent->getKey(); } // 캐시를 사용하는 경우 기존 메뉴를 대상으로 하는 캐시의 갱신이 필요하여 // 변경전 업데이트를 수행함 $this->repo->update($item->menu); $item->{$item->getAggregatorKeyName()} = $menu->getKey(); $item->setRelation('menu', $menu); $item = $this->repo->updateItem($item); // 연관 객체 정보들이 변경 되었으므로 객채를 갱신 함 return $this->repo->findItem($item->getKey()); }