【发布时间】:2019-07-02 10:00:52
【问题描述】:
使用特定条件在表单请求中添加错误消息。
我正在发出表单请求以处理我的验证。在我的表单中,我有几个字段,但重要的是“月”“日”或“年”下拉。它们都设置为 required,如果其中一个使所需规则无效,表单请求将通过在 $validator 中创建另一个错误来处理它。
逻辑是这样的。
If (month = fail || day = fail || year = fail) {
$validator->errors()->add('date', 'please fill out the whole date)
}
我想在验证后在我的表单请求中执行此操作。
这是我对表单请求字段的规则。
public function rules()
{
return [
'name' => 'nullable',
'sex' => 'nullable',
'phone_number' => 'nullable',
'email' => 'nullable',
'month' => 'bail|required',
'day' => 'bail|required',
'year' => 'bail|required',
];
}
在我的视图(树枝模板)下,在月、日、年的选择字段下,我应该显示我的错误消息:
{{errors.first('date')}}
到目前为止,我还不知道如何编写条件并添加自定义错误消息。
编辑:我找到了答案,但我不确定这是否是一种好习惯。也许有人能找到比这更好的答案。
protected function failedValidation(Validator $validator) {
if (array_key_exists('month', $validator->failed()) ||
array_key_exists('day', $validator->failed()) ||
array_key_exists('year', $validator->failed()) ) {
$validator->getMessageBag()->add('date', 'sample error message');
}
}
【问题讨论】:
标签: laravel validation