|
|
@@ -42,13 +42,16 @@ class MenuController extends Controller
|
|
|
if (request()->has("font_style"))$update["font_style"] = request("font_style");
|
|
|
if (request()->has("route"))$update["route"] = request("route");
|
|
|
if (request()->has("diff")){
|
|
|
- $diff = request("diff");
|
|
|
- Menu::query()->whereIn("id",request("child"))->update(["level"=>DB::raw("level - {$diff}")]);
|
|
|
+ $diff = request("diff"); //TODO 此处需要查询出模型 ->get()->each()来进行update操作以确保观察者检测到 下面同理
|
|
|
+ Menu::query()->whereIn("id",request("child"))->get()->each(function ($menu)use($diff){
|
|
|
+ $menu->update(["level"=>DB::raw("level - {$diff}")]);
|
|
|
+ });
|
|
|
}
|
|
|
- if ($update && Menu::query()->where("id",request("id"))->update($update)){
|
|
|
+ if ($update){
|
|
|
+ Menu::query()->where("id",request("id"))->first()->update($update);
|
|
|
app("MenuService")->setMenu();//重建菜单缓存
|
|
|
if ($authorityUpdate && ($mapping[request("id")] ?? null)){
|
|
|
- Authority::query()->where("id",$mapping[request("id")])->update($authorityUpdate);
|
|
|
+ Authority::query()->where("id",$mapping[request("id")])->first()->update($authorityUpdate);
|
|
|
app("AuthorityService")->removeAllAuth();//移除所有用户权限缓存,这将在用户下次访问时重新建立
|
|
|
}
|
|
|
}
|
|
|
@@ -70,7 +73,7 @@ class MenuController extends Controller
|
|
|
$mapping = app("MenuService")->getMenuAndAuthorityMapping();
|
|
|
if ($id){
|
|
|
$this->gate("基础设置-菜单-编辑");
|
|
|
- Menu::query()->where("id",$id)->update([
|
|
|
+ Menu::query()->where("id",$id)->first()->update([
|
|
|
"name" => request("name"),
|
|
|
"route" => request("route"),
|
|
|
"font" => request("font"),
|
|
|
@@ -111,11 +114,11 @@ class MenuController extends Controller
|
|
|
$mapping = app("MenuService")->getMenuAndAuthorityMapping();
|
|
|
foreach ($ids as $id)if (isset($mapping[$id]))$authIds[] = $mapping[$id];
|
|
|
|
|
|
- Menu::destroy($ids);
|
|
|
+ Menu::query()->whereIn("id",$ids)->get()->each(function ($menu){$menu->delete();});
|
|
|
app("MenuService")->setMenu();//重建菜单缓存
|
|
|
if ($authIds){
|
|
|
DB::table("authority_role")->whereIn("id_authority",$authIds)->delete();
|
|
|
- Authority::destroy($ids);
|
|
|
+ Authority::query()->whereIn("id",$authIds)->get()->each(function ($auth){$auth->delete();});
|
|
|
app("AuthorityService")->removeAllAuth();//移除所有用户权限缓存,这将在用户下次访问时重新建立
|
|
|
}
|
|
|
$this->success();
|