72 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			72 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | 
 | ||
|  | 
 | ||
|  | namespace app\admin\validate\community; | ||
|  | 
 | ||
|  | 
 | ||
|  | use app\common\basics\Validate; | ||
|  | use app\common\model\community\CommunityTopic; | ||
|  | 
 | ||
|  | /** | ||
|  |  * 种草社区话题验证 | ||
|  |  * Class CommunityTopicValidate | ||
|  |  * @package app\admin\validate\community | ||
|  |  */ | ||
|  | class CommunityTopicValidate extends Validate | ||
|  | { | ||
|  |     protected $rule = [ | ||
|  |         'id' => 'require|number', | ||
|  |         'name' => 'require|max:12|unique:' . CommunityTopic::class . ',name^del', | ||
|  |         'image' => 'require', | ||
|  |         'cid' => 'require|number', | ||
|  |         'is_show' => 'require|in:0,1', | ||
|  |         'is_recommend' => 'require|in:0,1', | ||
|  |         'sort' => 'egt:0', | ||
|  |         'field' => 'require|checkUpdateField', | ||
|  |         'value' => 'require|in:0,1', | ||
|  |     ]; | ||
|  | 
 | ||
|  |     protected $message = [ | ||
|  |         'id.require' => 'id不可为空', | ||
|  |         'id.number' => 'id必须为数字', | ||
|  |         'name.require' => '请填写话题名称', | ||
|  |         'name.max' => '话题名称长度不能超过12位', | ||
|  |         'name.unique' => '话题名称已存在', | ||
|  |         'image.require' => '请选择话题图标', | ||
|  |         'cid.require' => '请选择关联分类', | ||
|  |         'is_recommend.require' => '请选择是否推荐', | ||
|  |         'is_recommend.in' => '推荐状态异常', | ||
|  |         'is_show.require' => '请选择是否显示', | ||
|  |         'is_show.in' => '显示状态异常', | ||
|  |         'sort.egt' => '请填写大于等于0的排序值', | ||
|  |         'field.egt' => '参数缺失', | ||
|  |         'value.egt' => '参数缺失', | ||
|  |         'value.in' => '状态值异常', | ||
|  |     ]; | ||
|  | 
 | ||
|  |     protected $scene = [ | ||
|  |         'id' => ['id'], | ||
|  |         'status' => ['id', 'field', 'value'], | ||
|  |         'add' => ['name', 'image', 'cid', 'is_recommend', 'is_show', 'sort'], | ||
|  |         'edit' => ['id', 'name', 'image', 'cid', 'is_recommend', 'is_show', 'sort'] | ||
|  |     ]; | ||
|  | 
 | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @notes 校验更新字段 | ||
|  |      * @param $value | ||
|  |      * @param $rule | ||
|  |      * @param $data | ||
|  |      * @return bool|string | ||
|  |      * @author 段誉 | ||
|  |      * @date 2022/4/28 15:13 | ||
|  |      */ | ||
|  |     protected function checkUpdateField($value, $rule, $data) | ||
|  |     { | ||
|  |         $allow_field = ['is_show', 'is_recommend']; | ||
|  |         if (in_array($value, $allow_field)) { | ||
|  |             return true; | ||
|  |         } | ||
|  |         return '非法字段'; | ||
|  |     } | ||
|  | } |