Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
lightCMS
提交
37df8e19
L
lightCMS
项目概览
OpenDocCN
/
lightCMS
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
lightCMS
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
37df8e19
编写于
3月 08, 2019
作者:
孙
孙建华
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
禁止删除有子菜单的菜单
上级
938b5356
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
30 addition
and
10 deletion
+30
-10
app/Http/Controllers/Admin/MenuController.php
app/Http/Controllers/Admin/MenuController.php
+26
-10
app/Repository/Admin/MenuRepository.php
app/Repository/Admin/MenuRepository.php
+4
-0
未找到文件。
app/Http/Controllers/Admin/MenuController.php
浏览文件 @
37df8e19
...
...
@@ -144,17 +144,24 @@ class MenuController extends Controller
/**
* 菜单管理-删除菜单
*
* @param Request $request
* @param int $id
*/
public
function
delete
(
Request
$request
,
$id
)
public
function
delete
(
$id
)
{
MenuRepository
::
delete
(
$id
);
return
[
'code'
=>
0
,
'msg'
=>
'删除成功'
,
'redirect'
=>
route
(
'admin::menu.index'
)
];
try
{
MenuRepository
::
delete
(
$id
);
return
[
'code'
=>
0
,
'msg'
=>
'删除成功'
,
'redirect'
=>
route
(
'admin::menu.index'
)
];
}
catch
(
\
RuntimeException
$e
)
{
return
[
'code'
=>
1
,
'msg'
=>
'删除失败:'
.
$e
->
getMessage
(),
'redirect'
=>
route
(
'admin::menu.index'
)
];
}
}
/**
...
...
@@ -242,6 +249,7 @@ class MenuController extends Controller
return
intval
(
$item
);
},
$ids
);
$message
=
''
;
switch
(
$type
)
{
case
'disable'
:
Menu
::
query
()
->
whereIn
(
'id'
,
$ids
)
->
update
([
'status'
=>
Menu
::
STATUS_DISABLE
]);
...
...
@@ -250,7 +258,15 @@ class MenuController extends Controller
Menu
::
query
()
->
whereIn
(
'id'
,
$ids
)
->
update
([
'status'
=>
Menu
::
STATUS_ENABLE
]);
break
;
case
'delete'
:
Menu
::
query
()
->
whereIn
(
'id'
,
$ids
)
->
delete
();
// 过滤掉有子项目的
$hasChildren
=
array_unique
(
Menu
::
query
()
->
whereIn
(
'pid'
,
$ids
)
->
pluck
(
'pid'
)
->
toArray
());
$deleteIds
=
array_diff
(
$ids
,
$hasChildren
);
if
(
!
empty
(
$deleteIds
))
{
Menu
::
query
()
->
whereIn
(
'id'
,
$deleteIds
)
->
delete
();
}
if
(
$hasChildren
)
{
$message
=
' 以下菜单ID因有子菜单不能直接删除:'
.
implode
(
','
,
$hasChildren
);
}
break
;
case
'parent'
:
$pid
=
intval
(
$request
->
input
(
'params'
,
-
1
));
...
...
@@ -274,7 +290,7 @@ class MenuController extends Controller
return
[
'code'
=>
0
,
'msg'
=>
'操作成功'
,
'msg'
=>
'操作成功'
.
$message
,
'reload'
=>
true
];
}
...
...
app/Repository/Admin/MenuRepository.php
浏览文件 @
37df8e19
...
...
@@ -60,6 +60,10 @@ class MenuRepository
public
static
function
delete
(
$id
)
{
// 不能删除非空的父菜单
if
(
!
Menu
::
query
()
->
where
(
'pid'
,
$id
)
->
get
()
->
isEmpty
())
{
throw
new
\
RuntimeException
(
'不能直接删除非空的父菜单,请先删除当前菜单的所有子菜单'
);
}
return
Menu
::
destroy
(
$id
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录