Php 带L4'的嵌套输入;验证器

Php 带L4'的嵌套输入;验证器,php,laravel,laravel-4,Php,Laravel,Laravel 4,有人知道如何使用Laravel 4验证程序验证嵌套输入集吗 我有一个带有一组行项目的表,每个数量字段在名称的方括号中都有唯一的包id: <input type="text" name="quantity[package_one]" /> <input type="text" name="quantity[package_two]" /> 这似乎不起作用,在quantity下嵌套规则也不起作用。显然,这有一些变通方法,比如在将输入传递给验证器之前自己构建一个自定义数组,等

有人知道如何使用Laravel 4验证程序验证嵌套输入集吗

我有一个带有一组行项目的表,每个数量字段在名称的方括号中都有唯一的包id:

<input type="text" name="quantity[package_one]" />
<input type="text" name="quantity[package_two]" />
这似乎不起作用,在
quantity
下嵌套规则也不起作用。显然,这有一些变通方法,比如在将输入传递给验证器之前自己构建一个自定义数组,等等,但我想知道的是:

有没有一种本机的“Laravel”方式来处理这样的嵌套输入?

提前感谢,, 丹。

肮脏的道路

控制器 验证程序不查看嵌套数组。只要把这个数组放到外数组,你就完成了。(如果之后需要,您可以取消设置
$input['quantity']

这里的漏洞是,它假设数组中存在
$input['quantity']
。您需要在进行验证之前对此进行验证


工作正常,但效率不高。

您可以为数量输入创建一个额外的验证器对象。它需要更多的代码,但我认为它比合并到一个数组更健壮

<?php

array(
  'quantity' => array(
    'package_one' => 3,
    'package_two' => 12
  )
);
// Does not work :-(
Validator::make(Input::all(), array(
    'quantity[package_one]' => 'numeric|required|min:1',
    'quantity[package_two]' => 'numeric|required|min:1'
));
$input = Input::all();
$input = array_merge($input, $input['quantity']);
Validator::make(Input::all(), array(
'package_one' => 'numeric|required|min:1',
'package_two' => 'numeric|required|min:1'
 ));