首页 > 解决方案 > 如何为具有 2 个不同参数的同一规则制作 2 个不同的 Laravel 验证消息?

问题描述

你好我有这些规则的 Laravel 验证请求

 public function rules()
{
    return [
        'email' => 'unique:users,email|required|unique:invitations,email',
        'name' => 'string|required',
    ];
}

我希望“unique:users,email”显示一条消息,而“unique:invitations,email”显示另一条消息。怎么做?

'unique:users,email' => 'This E-Mail address is already registered.',
'unique:invitations,email' => 'Invitation to this E-Mail address is already sent.',

它总是返回“唯一”规则的默认消息。

'unique' => 'The :attribute has already been taken.',

标签: laravelvalidation

解决方案


我不确定这是否可行,但你能试试这些吗

 public function messages()
{
    return [
      'unique:users,email' => 'This E-Mail address is already registered.',
      'unique:invitations,email' => 'Invitation to this E-Mail address is already sent.',
    //or  
    'email.unique:users,emai' => 'This E-Mail address is already registered.',
    'email.unique:invitations,email' => 'Invitation to this E-Mail address is 

    //you may even try it without the ,fieldname
    'email.unique:users' => '' 
    ];
}

推荐阅读