File: /home/armgroup/libs/app/Http/Controllers/Admin/MenuController.php
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Menu;
use Illuminate\Http\Request;
class MenuController extends Controller
{
public function __construct()
{
$this->middleware('permission:manage menus');
}
public function index()
{
$menus = Menu::whereNull('parent_id')->select('id', 'title', 'status')->get();
return view('admin.menus.index', compact('menus'));
}
public function create(Request $request)
{
$request->validate(['parent' => 'sometimes|exists:menus,id']);
return view('admin.menus.create', ['parent' => $request->parent]);
}
public function edit(Menu $menu)
{
return view('admin.menus.edit', compact('menu'));
}
public function destroy(Menu $menu)
{
$menu->delete();
$this->doneMessage("منوی {$menu->title} با موفقیت حذف شد");
return back();
}
public function ajax($id)
{
if (! request()->ajax()) {
abort(404);
}
$menu = Menu::with('children')->findOrFail($id);
$data = view('admin.menus.ajax', [
'menus' => $menu->children,
'title' => $menu->title,
'level' => request('level') + 1,
'parent' => $menu->id,
])->render();
return response()->json($data);
}
}