LARAVEL 5.3 - 忽略Validator自定义消息

时间:2016-10-06 17:06:13

标签: php laravel laravel-validation

我收到了登录帖子的方法:

$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',否则会忽略自定义消息,并将默认值发送到视图。

我是否真的必须在邮件中指定规则或我做错了什么?

3 个答案:

答案 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新请求文件,并将其用于为指定表单创建的请求模型。