Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation 是否可以在不同的上下文中将不同的错误消息分配给相同的验证属性?_Validation_Laravel_Laravel 4 - Fatal编程技术网

Validation 是否可以在不同的上下文中将不同的错误消息分配给相同的验证属性?

Validation 是否可以在不同的上下文中将不同的错误消息分配给相同的验证属性?,validation,laravel,laravel-4,Validation,Laravel,Laravel 4,假设我有两种类型的实体A和B,它们的属性结尾相同 在我的lang文件中,我希望有两条消息用于end_at,这取决于它是指A还是B 我试过: 'custom_rule' => 'Default message', 'custom' => array( 'A.ends_at' => [ 'custom_rule' => 'Message for A' ], 'B.ends_at' => [ 'custom_rule' => 'Message f

假设我有两种类型的实体A和B,它们的属性结尾相同

在我的lang文件中,我希望有两条消息用于end_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'  ]
),
但它不起作用;它将显示默认消息


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

进行验证时,最好的方法是创建验证服务,然后您可以为规则定义默认的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的精彩视频教程:


创建服务只需10分钟左右,跳过基本验证信息到10分钟左右即可开始验证服务。

您需要自定义规则A和自定义规则B。使自定义规则B只需返回自定义规则A作为函数,但与此同时,您可以在lang文件中为a和B指定一条唯一的消息,如果我有一个多语言站点呢?我能通过一个语言文件读取这些$messages吗?验证服务的好处是,您可以使用任意多个不同的语言实例对其进行扩展。因此,您可能需要登录英语类或登录西班牙语类,您可以选择在控制器逻辑中使用这两个类中的哪一个。我添加的教程将带您了解如何使用该服务。