diff --git a/app/admin/controller/v1/ArticleCategory.php b/app/admin/controller/v1/ArticleCategory.php index be4dde56..b0464632 100644 --- a/app/admin/controller/v1/ArticleCategory.php +++ b/app/admin/controller/v1/ArticleCategory.php @@ -76,13 +76,18 @@ class ArticleCategory public function save() { $post = request()->post([ + 'unique_label', 'name', + 'icon', 'pid', 'sort' => 0, 'is_show' => 1 ]); - $data = array_merge($post, ['language_id' => request()->lang_id]); + $data = array_merge($post, [ + 'language_id' => request()->lang_id, + 'unique_label' => $post['unique_label'] ?? uniqid('BANNER_') + ]); $valiate = new ArticleCategoryValidate; if (!$valiate->scene('add')->check($data)) { return error($valiate->getError()); @@ -101,6 +106,7 @@ class ArticleCategory $id = request()->param('id'); $put = request()->put([ 'name', + 'icon', 'pid', 'sort', 'is_show' @@ -108,7 +114,7 @@ class ArticleCategory $data = array_merge($put, ['language_id' => request()->lang_id]); $valiate = new ArticleCategoryValidate; - if (!$valiate->check(array_merge($data, ['id' => $id]))) { + if (!$valiate->scene('edit')->check(array_merge($data, ['id' => $id]))) { return error($valiate->getError()); } diff --git a/app/admin/validate/v1/ArticleCategoryValidate.php b/app/admin/validate/v1/ArticleCategoryValidate.php index 0654ae88..b818684d 100644 --- a/app/admin/validate/v1/ArticleCategoryValidate.php +++ b/app/admin/validate/v1/ArticleCategoryValidate.php @@ -19,7 +19,9 @@ class ArticleCategoryValidate extends Validate 'id' => 'require|integer', 'language_id' => 'require|integer', 'name' => 'require|unique:article_category,name^language_id|max:64', + 'icon' => 'max:125', 'pid' => 'integer|different:id|checkPidNotBeChildren', // 验证pid + 'unique_label' => 'require|max:64', 'sort' => 'require|integer', 'is_show' => 'require|in:0,1', 'seo_title' => 'max:255', @@ -41,9 +43,12 @@ class ArticleCategoryValidate extends Validate 'name.require' => '分类名称不能为空', 'name.unique' => '分类名称已存在', 'name.max' => '分类名称最多64个字符', + 'icon.max' => '分类图片最多125个字符', 'pid.integer' => '父级分类ID必须为整数', 'pid.different' => '父级分类ID不能为自身', 'pid.checkPidNotBeChildren' => '父级分类不能为自身或自身的子分类', + 'unique_label.require' => '分类唯一标识不能为空', + 'unique_label.max' => '分类唯一标识最多64个字符', 'sort.require' => '排序不能为空', 'sort.integer' => '排序必须为整数', 'is_show.require' => '是否显示不能为空', @@ -84,4 +89,10 @@ class ArticleCategoryValidate extends Validate { $this->remove('id', 'require|integer')->remove('pid', 'different|checkPidNotBeChildren'); } + + // 更新分类验证场景 + protected function sceneEdit() + { + $this->remove('unique_label', 'require|max:64'); + } } diff --git a/app/common/model/ArticleCategoryBaseModel.php b/app/common/model/ArticleCategoryBaseModel.php index a5f1abfe..15f4e03c 100644 --- a/app/common/model/ArticleCategoryBaseModel.php +++ b/app/common/model/ArticleCategoryBaseModel.php @@ -19,6 +19,7 @@ class ArticleCategoryBaseModel extends BaseModel 'id' => 'int', 'language_id' => 'int', 'pid' => 'int', + 'unique_label' => 'string', 'name' => 'string', 'short_name' => 'string', 'icon' => 'string',