/** * Rearrange quickadmin menu items * * @param Request $request * * @return \Illuminate\Http\RedirectResponse */ public function rearrange(Request $request) { $menusList = Menu::with(['children'])->where('menu_type', '!=', 0)->where('parent_id', null)->orderBy('position')->get(); foreach ($menusList as $menu) { if ($menu->children()->first() == null) { $menu->position = $request->{'menu-' . $menu->id}; $menu->save(); } else { $menu->position = $request->{'menu-' . $menu->id}; $menu->save(); foreach ($menu->children as $child) { $child->position = $request->{'child-' . $child->id}; $child->parent_id = $request->{'child-parent-' . $child->id}; $child->save(); } } } return redirect()->back(); }
<?php /** * Package routing file specifies all of this package routes. */ use Illuminate\Support\Facades\View; use Laraveldaily\Quickadmin\Models\Menu; if (Schema::hasTable('menus')) { $menus = Menu::with('children')->where('menu_type', '!=', 0)->orderBy('position')->get(); View::share('menus', $menus); if (!empty($menus)) { Route::group(['middleware' => ['web', 'auth', 'role'], 'prefix' => config('quickadmin.route'), 'namespace' => 'App\\Http\\Controllers'], function () use($menus) { foreach ($menus as $menu) { switch ($menu->menu_type) { case 1: Route::post(strtolower($menu->name) . '/massDelete', ['as' => config('quickadmin.route') . '.' . strtolower($menu->name) . '.massDelete', 'uses' => 'Admin\\' . ucfirst(camel_case($menu->name)) . 'Controller@massDelete']); Route::resource(strtolower($menu->name), 'Admin\\' . ucfirst(camel_case($menu->name)) . 'Controller'); break; case 3: Route::controller(strtolower($menu->name), 'Admin\\' . ucfirst(camel_case($menu->name)) . 'Controller', ['getIndex' => config('quickadmin.route') . '.' . strtolower($menu->name) . '.index']); break; } } }); } } Route::group(['namespace' => 'Laraveldaily\\Quickadmin\\Controllers', 'middleware' => ['web', 'auth']], function () { // Dashboard home page route Route::get(config('quickadmin.homeRoute'), 'QuickadminController@index'); Route::group(['middleware' => 'role'], function () { // Menu routing
<?php /** * Package routing file specifies all of this package routes. */ use Illuminate\Support\Facades\View; use Laraveldaily\Quickadmin\Models\Menu; /* * Amir's custom code * ->leftJoin('sitesplugins', 'menus.id', '=', 'sitesplugins.menu_id') */ if (Schema::hasTable('menus')) { $menus = Menu::with('children')->where('menu_type', '!=', 0)->leftJoin('sitesplugins', 'menus.id', '=', 'sitesplugins.menu_id')->select(DB::raw('GROUP_CONCAT(sitesplugins.sites_id) as sites_id'), 'menus.*')->groupBy('menus.id')->orderBy('position')->get(); View::share('menus', $menus); if (!empty($menus)) { Route::group(['middleware' => ['web', 'auth', 'role'], 'prefix' => config('quickadmin.route'), 'namespace' => 'App\\Http\\Controllers'], function () use($menus) { foreach ($menus as $menu) { switch ($menu->menu_type) { case 1: Route::post(strtolower($menu->name) . '/massDelete', ['as' => config('quickadmin.route') . '.' . strtolower($menu->name) . '.massDelete', 'uses' => 'Admin\\' . ucfirst(camel_case($menu->name)) . 'Controller@massDelete']); Route::resource(strtolower($menu->name), 'Admin\\' . ucfirst(camel_case($menu->name)) . 'Controller'); break; case 3: Route::controller(strtolower($menu->name), 'Admin\\' . ucfirst(camel_case($menu->name)) . 'Controller', ['getIndex' => config('quickadmin.route') . '.' . strtolower($menu->name) . '.index']); break; } } }); } } Route::group(['namespace' => 'Laraveldaily\\Quickadmin\\Controllers', 'middleware' => ['web', 'auth']], function () {