Her*_*ter 5 php forms validation laravel
我需要一些帮助才能使用Laravel 5.4验证我的表单.
我的表格:
{{Form::bsText('general[firstname]')}}
{{Form::bsText('general[lastname]')}}
Run Code Online (Sandbox Code Playgroud)
然后我有一个RequestObject用于验证,具有以下规则:
'general[firstname]' => 'required|string:max:255',
'general[lastname]' => 'required|string:max:255',
Run Code Online (Sandbox Code Playgroud)
这样,当不按预期方式为空时,它会生成"必需"错误.虽然当我填写一个字符串时,它仍然提供所需的错误消息.
我也从laravel文档中尝试了以下内容:
'general.firstname' => 'required|string:max:255',
'general.lastname' => 'required|string:max:255',
Run Code Online (Sandbox Code Playgroud)
和:
'general.*.firstname' => 'required|string:max:255',
'general.*.lastname' => 'required|string:max:255',
Run Code Online (Sandbox Code Playgroud)
以上两者都没有给出错误.
根据要求,这是我的完整Request对象:
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
$user = Auth::user();
return ($user && $user->isProjectManager()) ||
($user && $user->isAdmin());
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
switch($this->method()){
case 'GET':
case 'DELETE':
return [];
case 'POST':
return [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'role' => 'in:2,3,4,5,6,7',
'password' => 'required|string|min:6|confirmed',
'project_manager_gegevens_photo' => 'required_if:role,2|mimes:png,jpeg,gif',
'general[voornaam]' => 'required|alpha:max:255',
'general[achternaam]' => 'required|string:max:255',
'general[date]' => 'required_if:role,3,4,5|date|after:today',
'general[telefoonnummer]' => 'required_if:role,3,4,5',
'general[interne_medewerker]' => 'boolean',
'general[geslacht]' => 'in:m,v,o',
];
case 'PUT':
case 'PATCH':
return [
'name' => 'required|string|max:255',
'password' => 'required|string|min:6|confirmed',
];
default:return [];
}
}
Run Code Online (Sandbox Code Playgroud)
证明它与数组验证有关:当我将名称更改为:
{{Form::bsText('general_firstname')}}
Run Code Online (Sandbox Code Playgroud)
和
'general_firstname' => 'required|string:max:255'
Run Code Online (Sandbox Code Playgroud)
它会像你期望的那样验证它.虽然,我喜欢清洁和分离的东西,并希望有一个包含所有一般领域的阵列.
那么,我该如何验证它以便它是一个数组呢?
所以,我忘记了自定义表单组件的使用。在这些组件中,我查找了字段的名称。所以我会检查
$errors->get('general[voornaam]')
Run Code Online (Sandbox Code Playgroud)
我应该从哪里得到它们:
$errors->get('general.voornaam')
Run Code Online (Sandbox Code Playgroud)
是的!今天到此为止!
归档时间: |
|
查看次数: |
529 次 |
最近记录: |