我收到了登录帖子的方法:
$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'
,否则会忽略自定义消息,并将默认值发送到视图。
我是否真的必须在邮件中指定规则或我做错了什么?
答案 0 :(得分:0)
我是否真的必须在消息中指定规则,或者我在做什么 有什么不对吗?
需要'规则已有默认消息。你可以简单地把它留下来。所以这将有效:
$validator = Validator::make(
$request->all(),
[
'user' => 'required',
'password' => 'required'
]
);
https://laravel.com/docs/5.3/validation#working-with-error-messages
答案 1 :(得分:0)
Laravel首先查看自定义消息,如果无法找到,则会回退到正常的验证消息。
import { Component, OnInit, } from '@angular/core';
import { TravisService } from './travis-service';
@Component({
selector: 'travis-app',
templateUrl: 'app/travis-app.component.html',
providers: [TravisService]
})
export class TravisComponent implements OnInit {
errorMessage: string;
constructor(private travisService: TravisService) { }
ngOnInit() {
this.travisService.getData().subscribe(
data => {
console.log(data);
},
error => this.errorMessage = <any>error
);
}
}
不适用于您设置的必要验证。所以默认消息正常。您必须在特定错误类型上编写自定义消息。
示例:密码是必需的,也应该是整数
'password' => 'Password is required'
注意:您还可以在validation.php文件中设置自定义消息,并在自定义数组中添加消息。您可以在全球范围内使用自定义消息。
$validator = \Validator::make(
$request->all(),
[
'password' => 'required|integer'
],[
'password.integer' => 'Password needs to be interger',
'password.required' => 'Password is required'
]
);
答案 2 :(得分:0)
我的想法是在lang文件夹中创建特定语言,如EN,ES新请求文件,并将其用于为指定表单创建的请求模型。