<?php namespace App\Http\Controllers\Admin; use App\Models\Menu; use App\Models\Language; use App\Models\Daynamicpage; use Illuminate\Http\Request; use App\Http\Controllers\Controller; class MenuController extends Controller { public function index(Request $request) { $lang = Language::where('code', $request->language)->firstOrFail(); $data['lang_id'] = $lang->id; // set language app()->setLocale($lang->code); // get page names of selected language $pages = Daynamicpage::where('language_id', $lang->id)->get(); $data["pages"] = $pages; // get previous menus $menu = Menu::where('language_id', $lang->id)->first(); $data['prevMenu'] = ''; if (!empty($menu)) { $data['prevMenu'] = $menu->menus; } return view('admin.menu.index', $data); } public function update(Request $request) { // return response()->json(json_decode($request->str, true)); $menus = json_decode($request->str, true); foreach ($menus as $key => $menu) { if (strpos($menu['type'], 'products') !== false) { if (array_key_exists('children', $menu) && !empty($menu['children'])) { return response()->json(['status' => 'error', 'message' => 'Product Menu can not contain children!']); } } if (array_key_exists('children', $menu) && !empty($menu['children'])) { $allChildren = json_encode($menu['children']); if (strpos($allChildren, 'products') !== false) { return response()->json(['status' => 'error', 'message' => 'Product Menu cannot be children of a Menu!']); } } } Menu::where('language_id', $request->language_id)->delete(); $menu = new Menu; $menu->language_id = $request->language_id; $menu->menus = json_encode($menus); $menu->save(); return response()->json(['status' => 'success', 'message' => 'Menu updated successfully!']); } }