Php 带L4'的嵌套输入;验证器
有人知道如何使用Laravel 4验证程序验证嵌套输入集吗 我有一个带有一组行项目的表,每个数量字段在名称的方括号中都有唯一的包id: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下嵌套规则也不起作用。显然,这有一些变通方法,比如在将输入传递给验证器之前自己构建一个自定义数组,等
<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'
));