'require', 'plan_id' => 'require|checkPlan', 'person_detail' => 'require|checkDetail', 'file' => 'require|checkFile', ]; protected $message = [ 'id.require' => '缺少必要参数', 'plan_id.require' => '请选择施工计划', 'person_detail.require' => '请填写人工明细', 'file.require' => '请上传现场照片', ]; /** * @notes 添加场景 * @return BuildReportValidate * @author likeadmin * @date 2023/12/22 16:08 */ public function sceneAdd() { return $this->remove('id',true); } /** * @notes 编辑场景 * @return BuildReportValidate * @author likeadmin * @date 2023/12/22 16:08 */ public function sceneEdit() {} /** * @notes 删除场景 * @return BuildReportValidate * @author likeadmin * @date 2023/12/22 16:08 */ public function sceneDelete() { return $this->only(['id']); } /** * @notes 详情场景 * @return BuildReportValidate * @author likeadmin * @date 2023/12/22 16:08 */ public function sceneDetail() { return $this->only(['id']); } public function checkPlan($value): bool|string { $data = BuildPlan::where('id',$value)->findOrEmpty(); if($data->isEmpty()){ return '施工计划不存在'; } return true; } public function checkFile($value): bool|string { $file = json_decode($value,true); if(empty($file)){ return '附件必须是json数组'; } return true; } public function checkDetail($value): bool|string { $person_detail = json_decode($value,true); if(empty($person_detail) || !is_array($person_detail)){ return '人工明细数据格式错误'; } foreach($person_detail as $v) { if(empty($v['person_id']) || empty($v['work_num'])){ return '人工明细缺少必要参数'; } } return true; } }