我有这样的验证:
TitleRequest.php:
public function rules()
{
return [
'title_name_report' => 'required|min:2',
'develop_code' => 'required',
];
}
public function messages()
{
return [
'title_name_report.required',
'title_name_report.min',
'develop_code.required'
];
}
郎/ VI / validation.php。
'title_name_report.required'=>"Please enter, :attribute !",
'title_name_report.min'=>"Min length is :attribute",
'develop_code.required'=>"Please enter :attribute !",
'custom' => [
'attribute-name' => [
'rule-name' => 'custom-message',
],
],
'attributes' => [],
视图/ title.blade.php
<input type="text" class="form-control" id="title_name_report" name="title_name_report"
value="{{old('title_name_report')}}">
@if($errors->has('title_name_report'))
<div class="error-text">
{{$errors->first('title_name_report')}}
</div>
@endif
我有两个问题:
1。如何准确显示错误消息,我有2条规则,但它始终显示第一条规则的消息。当我尝试输入1个字符时,它仍然显示所需的消息。
2. 我如何使用langs文件,因此我不需要将消息放入请求文件中。
请帮助我,非常感谢!
答案 0 :(得分:3)
您可以使用以下方式显示所有验证错误:
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
将自定义验证消息放在resources/lang/xx/validation.php
文件中,格式为:
'custom' => [
'email' => [
'required' => 'We need to know your e-mail address!',
],
],
更多信息:https://laravel.com/docs/5.4/validation#custom-error-messages
答案 1 :(得分:1)
Laravel只会按顺序验证您的输入。它不会返回 下一个规则的错误消息,直到它没有通过第一个规则。
您可以找到本地化详情here。它在
之下/resources/lang/en/validation.php
如果要更改验证消息tru请求文件,您应该像this
那样进行更改public function messages()
{
return [
'title_name_report.required' => "Title is required.",
'title_name_report.min' => "Title should not less than 2.",
'develop_code.required' => "Code is required.",
];
}