【问题标题】:Laravel custom error messages for same rule used twice相同规则的 Laravel 自定义错误消息使用了两次
【发布时间】:2017-02-24 14:45:34
【问题描述】:

我正在尝试在我的 Laravel 5.0 验证器方法中两次或多次使用的同一规则上创建不同的自定义错误消息。

$messages = [ 'exists'    => 'The order finished',
              'exists'    => 'The order belong to another user.' ];   
$validator = Validator::make( ['order_id' => $order_id], 
                              ['order_id' => "required|exists:t_orders,channel_id,finished,0|exists:t_orders,channel_id,user_id,$user_id"], 
$messages);

但是,无论应用验证的顺序如何,都只会返回最后一条自定义错误消息。

有没有办法让我两次或多次使用相同的规则并为每次创建不同的自定义错误消息?

【问题讨论】:

    标签: php laravel laravel-5


    【解决方案1】:

    通过不同的规则或消息集再次使用验证器。

    $rules1 = [
     'field' =>'exists:table,column',
    ];
    
    $rules2 = [
     'field' =>'exists:another_table,another_column',
    ];
    
    $messages1 = ['field.exists' =>'The order finished'];
    $messages2 = ['field.exists' => 'The order belongs to another user'];
    
    $validator1 = Validator::make($input, $rules1, $messages1);
    $validator2 = Validator::make($input, $rules2, $messages2);
    

    【讨论】:

      【解决方案2】:

      你的问题是关于 php 中的数组,在 $messages 变量中你基本上只有一个键,如果你 dd($messages);在 $messages 变量下方,您会看到它只有一个键,它是第二个。如果你像下面的代码一样为消息数组输入两个键,你会没事的。

      $messages = [ 'exists'    => 'The order finished',
          'existsTwo'    => 'The order belong to another user.' ];   
      $validator = Validator::make( ['order_id' => $order_id], 
          ['order_id' =>"required|exists:t_orders,channel_id,finished,0|existsTwo:t_orders,channel_id, user_id,$user_id"], $messages);
      

      【讨论】:

        猜你喜欢
        • 2015-09-07
        • 2018-04-30
        • 1970-01-01
        • 1970-01-01
        • 2016-10-21
        • 1970-01-01
        • 2021-12-09
        • 1970-01-01
        • 2016-02-18
        相关资源
        最近更新 更多