'require|checkJobs', 'dept_id' => 'require|checkDept', 'name' => 'require|length:1,50', 'status' => 'require|in:0,1', 'sort' => 'egt:0', ]; protected $message = [ 'id.require' => '参数缺失', 'dept_id.require' => '请选择部门', 'name.require' => '请填写岗位名称', 'name.length' => '岗位名称长度须在1-50位字符', 'status.require' => '请选择岗位状态', 'status.in' => '岗位状态值错误', 'sort.egt' => '排序值不正确', ]; /** * @notes 添加场景 * @return JobsValidate * @author 段誉 * @date 2022/5/26 9:53 */ public function sceneAdd() { return $this->remove('id', true)->append('name','checkUniqueByAdd'); } /** * @notes 详情场景 * @return JobsValidate * @author 段誉 * @date 2022/5/26 9:53 */ public function sceneDetail() { return $this->only(['id']); } public function sceneEdit() { return $this->append('name','checkUniqueByEdit'); } /** * @notes 删除场景 * @return JobsValidate * @author 段誉 * @date 2022/5/26 9:54 */ public function sceneDelete() { return $this->only(['id']); } //验证部门 public function checkDept($value): bool|string { $dept = Dept::findOrEmpty($value); if ($dept->isEmpty()) { return '部门不存在'; } return true; } /** * @notes 校验岗位 * @param $value * @return bool|string * @author 段誉 * @date 2022/5/26 9:55 */ public function checkJobs($value) { $jobs = Jobs::findOrEmpty($value); if ($jobs->isEmpty()) { return '岗位不存在'; } return true; } //验证唯一 public function checkUniqueByAdd($value,$rule,$data): bool|string { $jobs = Jobs::where('dept_id',$data['dept_id'])->where('name',$data['name'])->findOrEmpty(); if(!$jobs->isEmpty()){ return '岗位已存在'; } return true; } public function checkUniqueByEdit($value,$rule,$data): bool|string { $jobs = Jobs::where('dept_id',$data['dept_id'])->where('name',$data['name'])->where('id','<>',$data['id'])->findOrEmpty(); if(!$jobs->isEmpty()){ return '岗位已存在'; } return true; } }