59 lines
2.1 KiB
PHP
59 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Requestes;
|
|
|
|
use Illuminate\Contracts\Validation\Validator;
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
use Illuminate\Http\Exceptions\HttpResponseException;
|
|
|
|
class AgriculturalBaseRequest extends FormRequest
|
|
{
|
|
/**
|
|
* Get the validation rules that apply to the request.
|
|
*
|
|
* @return array
|
|
*/
|
|
public function rules()
|
|
{
|
|
return [
|
|
'name' => 'required|string|max:100',
|
|
'description' => 'nullable|string',
|
|
'person' => 'required|string|max:100',
|
|
'crops_ids' => 'required|array|min:1',
|
|
'areas' => 'required|regex:/^\d+(\.\d{1,2})?$/',
|
|
'workforce' => 'required|integer|min:0',
|
|
'address' => 'nullable|string',
|
|
'address_lat' => 'nullable|regex:/^\d+(\.\d{1,10})?$/',
|
|
'address_lng' => 'nullable|regex:/^\d+(\.\d{1,10})?$/',
|
|
];
|
|
}
|
|
|
|
public function messages()
|
|
{
|
|
$messages = [
|
|
'name.required' => '请填写基地名称',
|
|
'name.max' => '基地名称不能超过100字',
|
|
'description.string' => '请正确填写基地介绍',
|
|
'person.required' => '请填写基地负责人名称',
|
|
'person.max' => '基地负责人名称不能超过100字',
|
|
'crops_ids.required' => '请选择农作物',
|
|
'crops_ids.min' => '至少选择一种农作物',
|
|
'areas.required' => '请填写基地面积',
|
|
'areas.regex' => '请正确填写基地面积',
|
|
'workforce.required' => '请填写就业人数',
|
|
'workforce.min' => '就业人数最小为0',
|
|
'address.string' => '请正确填写基地地址',
|
|
'address_lat.regex' => '请正确填写经度',
|
|
'address_lng.regex' => '请正确填写纬度',
|
|
];
|
|
|
|
return $messages;
|
|
}
|
|
|
|
protected function failedValidation(Validator $validator)
|
|
{
|
|
$error = $validator->errors()->all();
|
|
throw new HttpResponseException(response()->json(['data' => [], 'code' => 400, 'message' => $error[0]]));
|
|
}
|
|
}
|