60 lines
2.1 KiB
PHP
60 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Requestes;
|
|
|
|
use App\Enums\DeviceType;
|
|
use Illuminate\Contracts\Validation\Validator;
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
use Illuminate\Http\Exceptions\HttpResponseException;
|
|
use Illuminate\Validation\Rules\Enum;
|
|
|
|
class DeviceRequest extends FormRequest
|
|
{
|
|
/**
|
|
* Get the validation rules that apply to the request.
|
|
*
|
|
* @return array
|
|
*/
|
|
public function rules()
|
|
{
|
|
return [
|
|
'type' => ['required', new Enum(DeviceType::class)],
|
|
'agricultural_base_id' => 'required|integer|min:0',
|
|
'sn' => 'required|string|max:64',
|
|
'monitoring_point' => 'required|string|max:100',
|
|
'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',
|
|
];
|
|
}
|
|
|
|
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' => '请填写监控设备播放通道',
|
|
];
|
|
|
|
return $messages;
|
|
}
|
|
|
|
protected function failedValidation(Validator $validator)
|
|
{
|
|
$error = $validator->errors()->all();
|
|
throw new HttpResponseException(response()->json(['data' => [], 'code' => 400, 'message' => $error[0]]));
|
|
}
|
|
}
|