用于相同规则的Laravel自定义错误消息两次使用

时间:2016-10-15 05:53:46

标签: php laravel laravel-5

我正在尝试使用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);

但是,无论验证适用哪种顺序,都只返回最后一条自定义错误消息。

有没有一种方法可以使用相同的规则两次或更多次,并为每种规则创建不同的自定义错误消息?

2 个答案:

答案 0 :(得分:0)

你的问题是关于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);

答案 1 :(得分:0)

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

$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);