public function __construct(Menu $menu) { $this->paginationlimit = 5; $this->menuItems = ['' => 'Select Options'] + $menu->lists('name', 'id'); }
/** * Update/Store admin menu settings * POST /admin/settings * * @return Response */ public function storeSettings() { $data = Input::all(); Log::info($data); $allMenus = Menu::lists('name', 'id'); $allItems = MenuItem::lists('title', 'id'); //existing menus foreach ($data['menus'] as $i => $menu) { $m = Menu::updateOrCreate(['id' => $i], array('name' => $menu, 'link' => $data['mlinks'][$i], 'sort_id' => $data['msorts'][$i])); if (isset($data['imenus'][$i])) { foreach ($data['imenus'][$i] as $k => $im) { $sm = MenuItem::updateOrCreate(['id' => $k], array('title' => $im, 'link' => $data['ilinks'][$i][$k], 'sort_id' => $data['isorts'][$i][$k])); unset($allItems[$k]); } } if (isset($data['submenus'][$i])) { foreach ($data['submenus'][$i] as $k => $sb) { MenuItem::create(array('menu_id' => $i, 'title' => $sb, 'link' => $data['sublinks'][$i][$k], 'sort_id' => $data['subsorts'][$i][$k])); } } unset($allMenus[$i]); } //new menus if (isset($data['newmenus'])) { foreach ($data['newmenus'] as $i => $nmenu) { $m = Menu::create(array('name' => $nmenu, 'link' => $data['newlinks'][$i], 'sort_id' => $data['newsorts'][$i])); if (isset($data['submenus'][$i])) { foreach ($data['submenus'][$i] as $k => $im) { $sm = MenuItem::create(array('menu_id' => $m->id, 'title' => $im, 'link' => $data['sublinks'][$i][$k], 'sort_id' => $data['subsorts'][$i][$k])); } unset($data['submenus'][$i]); unset($allItems[$i]); } } //new submenus of exising menus foreach ($data['submenus'] as $k => $im) { foreach ($data['submenus'][$k] as $i => $sb) { MenuItem::create(array('menu_id' => $k, 'title' => $sb, 'link' => $data['sublinks'][$k][$i], 'sort_id' => $data['subsorts'][$k][$i])); } } } foreach ($allItems as $i => $title) { MenuItem::where('id', '=', $i)->delete(); } foreach ($allMenus as $m => $name) { Menu::where('id', '=', $m)->delete(); } if (Request::ajax()) { return Response::json('success'); } return View::make('admin.settings'); }