是否可以在不同的上下文中为同一验证属性分配不同的错误消息?

时间:2013-11-15 11:47:09

标签: validation laravel laravel-4

假设我有两种类型的实体(AB)具有相同的属性ends_at

在我的lang文件中,我想为ends_at提供两条消息,具体取决于它是指A还是B.

我试过了:

'custom_rule' => 'Default message',

'custom' => array(
    'A.ends_at' => [ 'custom_rule' => 'Message for A'  ],
    'B.ends_at' => [ 'custom_rule' => 'Message for B'  ]
),

但它不起作用;它会显示默认消息。

您知道如何在不更改属性的情况下仅显示相应的消息吗?

1 个答案:

答案 0 :(得分:0)

当您进行验证时,最好的方法是创建验证服务,然后您可以为规则定义默认的lang消息,并且还可以获取这些规则实例的消息。以下是登录表单验证的基本示例:

class Login extends Validator {

    public static $rules = [

        'email'    => 'required|email',
        'password' => 'required|numeric',

    ];

    public static $messages = [

        'email.required'    => 'Please enter an email address.',
        'email.email'       => 'Please enter a valid email address.',
        'password.required' => 'Please enter a password.',

    ];
}

在这里查看Jeffrey Way的精彩视频教程:https://tutsplus.com/lesson/validation-services/

它会引导您在大约10分钟内创建服务(跳过基本验证信息到大约10分钟即可立即开始验证服务)。