lcly-data-admin/app/Http/Requestes/DeviceRequest.php

62 lines
2.2 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',
'is_recommend' => 'filled|boolean',
];
}
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]]));
}
}