diff --git a/app/Admin/Actions/Grid/ArticleList.php b/app/Admin/Actions/Grid/ArticleList.php index 52481f3b..dca2c26e 100644 --- a/app/Admin/Actions/Grid/ArticleList.php +++ b/app/Admin/Actions/Grid/ArticleList.php @@ -16,9 +16,13 @@ class ArticleList extends RowAction */ protected $title = 'Title'; - public function getTitle() + public function title() { - return __('admin.list'); + if ($this->title) { + return $this->title; + } + + return ' '.__('admin.list').'   '; } /** diff --git a/app/Admin/Controllers/ArticleCategoryController.php b/app/Admin/Controllers/ArticleCategoryController.php index 67369d02..689915d4 100644 --- a/app/Admin/Controllers/ArticleCategoryController.php +++ b/app/Admin/Controllers/ArticleCategoryController.php @@ -4,6 +4,7 @@ namespace App\Admin\Controllers; use App\Admin\Actions\Grid\ArticleList; use App\Admin\Repositories\ArticleCategory; +use App\Models\Article; use App\Models\ArticleCategory as ArticleCategoryModel; use Dcat\Admin\Admin; use Dcat\Admin\Form; @@ -61,7 +62,7 @@ class ArticleCategoryController extends AdminController $grid->actions(function (Grid\Displayers\Actions $actions) { $actions->disableDelete(Admin::user()->cannot('dcat.admin.article_categories.destroy')); if (Admin::user()->can('dcat.admin.articles.index')) { - $actions->prepend(new ArticleList()); + $actions->prepend(new ArticleList(__('admin.list'))); } }); @@ -113,4 +114,14 @@ class ArticleCategoryController extends AdminController $form->display('updated_at'); }); } + + public function destroy($id) + { + //如果有子分类或者分类下有文章则不允许删除 + if (ArticleCategoryModel::descendantsOf($id, ['id'])->count() > 0 + || Article::where('category_id', $id)->count() > 0) { + abort(400, __('article-category.options.deny_message')); + } + return parent::destroy($id); + } } diff --git a/resources/lang/zh_CN/article-category.php b/resources/lang/zh_CN/article-category.php index e61ec139..c6243a57 100644 --- a/resources/lang/zh_CN/article-category.php +++ b/resources/lang/zh_CN/article-category.php @@ -13,5 +13,7 @@ return [ 'sort' => '排序', ], 'options' => [ + 'deny' => '删除失败', + 'deny_message'=>'请先删除该分类下的子分类或者文章', ], ];