refactor: 文章分类新增/更新添加图片及唯一标识
This commit is contained in:
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
@@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user