我得到了我的login post方法:
$validator = Validator::make(
$request->all(),
[
'user' => 'required',
'password' => 'required'
],[
'user' => 'Username is required',
'password' => 'Password is required'
]
);
但是,除非我将'password' => 'Password is required'
更改为'password.required' => 'Password is required'
,否则将忽略自定义消息,并将默认消息发送给视图。
我真的必须在消息中指定规则吗?还是我做错了什么?
Laravel首先查看自定义消息,如果无法找到,则返回到正常的验证消息。
'password' => 'Password is required'
不是您所设置的所需验证。所以默认消息是有效的。您必须针对特定的错误类型编写自定义消息。
示例:密码是必需的,也应该是整数,然后
$validator = 'Validator::make(
$request->all(),
[
'password' => 'required|integer'
],[
'password.integer' => 'Password needs to be interger',
'password.required' => 'Password is required'
]
);
注意:你也可以在validate .php文件中设置自定义消息,并在自定义数组中添加消息。您将能够在全局范围内使用您的自定义消息。
'custom' => [
'attribute-name' => [
'rule-name' => 'custom-message',
],
]
我真的需要在消息中指定规则吗错了什么吗?
'required'规则已经有一个默认消息。你可以简单地忽略它。这就行了:
$validator = Validator::make(
$request->all(),
[
'user' => 'required',
'password' => 'required'
]
);
https://laravel.com/docs/5.3/validation working-with-error-messages
我的想法是在lang文件夹中创建特定语言,如EN, ES的新文件,并将其用于为指定表单创建的请求模型。