['required', new Enum(DeviceType::class)], 'agricultural_base_id' => 'required|integer|min:0', 'sn' => 'required|string|max:64', 'monitoring_point' => 'required|string|max:100', 'supplier_key' => 'required', 'extends' => 'required_if:type,1', 'extends.ip' => 'required_if:type,1|string', 'extends.port' => 'required_if:type,1|string', 'extends.rtsp_url' => 'required_if:type,1|string', 'extends.username' => 'required_if:type,1|string', 'extends.password' => 'required_if:type,1|string', 'extends.passage' => 'required_if:type,1|string', 'is_recommend' => 'filled|boolean', 'sort' => 'nullable|integer|min:0', ]; } public function attributes() { return [ 'supplier_key' => '设备厂商', ]; } public function messages() { $messages = [ 'type' => '请选择设备类型', 'agricultural_base_id' => '请选择基地', 'sn' => '请填写设备编号', 'monitoring_point' => '请填写监控点', 'extends.required_if' => '请填写监控设备信息', 'extends.ip.required_if' => '请填写监控设备IP', 'extends.port.required_if' => '请填写监控设备端口', 'extends.rtsp_url.required_if' => '请填写监控设备RTSP地址', 'extends.username.required_if' => '请填写监控设备登录名', 'extends.password.required_if' => '请填写监控设备登录密码', 'extends.passage.required_if' => '请填写监控设备播放通道', 'is_recommend' => '请设置推荐状态', ]; return $messages; } protected function failedValidation(Validator $validator) { $error = $validator->errors()->all(); throw new HttpResponseException(response()->json(['data' => [], 'code' => 400, 'message' => $error[0]])); } }