App\Http\Controllers\MenuController::destroyItem PHP Method

destroyItem() public method

destroyItem 메뉴 아이템 삭제 처리 메소드
public destroyItem ( MenuHandler $handler, string $menuId, string $itemId ) : Illuminate\Http\RedirectResponse
$handler Xpressengine\Menu\MenuHandler menu handler
$menuId string menu id
$itemId string item id
return Illuminate\Http\RedirectResponse
    public function destroyItem(MenuHandler $handler, $menuId, $itemId)
    {
        $item = $handler->getItem($itemId);
        $menu = $item->menu;
        if ($menu->getKey() !== $menuId) {
            throw new InvalidArgumentHttpException(400);
        }
        XeDB::beginTransaction();
        try {
            $handler->removeItem($item);
            foreach (File::getByFileable($item->getKey()) as $file) {
                XeStorage::unBind($item->getKey(), $file);
            }
            $handler->deleteMenuItemTheme($item);
            $this->permissionUnregister($handler->permKeyString($item));
        } catch (Exception $e) {
            XeDB::rollback();
            return Redirect::back()->with('alert', ['type' => 'danger', 'message' => $e->getMessage()]);
        }
        XeDB::commit();
        return Redirect::route('settings.menu.index')->with('alert', ['type' => 'success', 'message' => 'MenuItem deleted']);
    }