显示Laravel 4中动态添加元素的验证错误

时间:2014-01-23 09:40:44

标签: validation laravel laravel-4

我有一个表单,记录每个项目的序列号。用户可以添加或减去项目数,因此表单可能如下所示:

<input type="text" name="serial_no[]" required />
<input type="text" name="serial_no[]" required />
<input type="text" name="serial_no[]" required />
<input type="text" name="serial_no[]" required />
//And so on. Depending on how many items the user would record

我通过迭代数组来验证这一点:

foreach (Input::get('serial_no') as $key => val):
    $rules["serial_no.$key"] => array("regex:/^[A-Z]{3}[0-9]{4}$/", "required");
endforeach;

现在,如果验证失败,我想显示有关序列号的错误。在我的表单中,我有一个span,我在其中放置了该字段的所有错误消息。问题是,验证错误返回:

["messages":protected]=>
array(2) {
   ["serial_no.0"]=>
      array(1) {
          [0]=>
          string(41) "The serial_no.0 has already been taken."
      }
   ["serial_no.1"]=>
      array(1) {
          [0]=>
          string(41) "The serial_no.1 has already been taken."
      }
   //Other errors of other fields
}

我如何能够检索此字段的错误?

1 个答案:

答案 0 :(得分:0)

$validation->errors()-add('error.name') 然后,您可以将withErrors();重定向回您的路线,这样就可以动态添加错误:)

要检索错误,请使用

$messages = $validator->messages();

$messages将是MessageBag的一个实例。 然后你可以使用$messages->all()来迭代错误

如果您需要使用$messages->get('key')

来获取特定错误