refactor: 文章分类新增/更新添加图片及唯一标识

This commit is contained in:
2025-04-30 10:10:26 +08:00
parent e889b1b1c7
commit 7b972f73b3
3 changed files with 20 additions and 2 deletions

View File

@@ -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());
}

View File

@@ -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');
}
}

View File

@@ -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',