Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 4验证-嵌套索引数组?_Php_Laravel - Fatal编程技术网

Php Laravel 4验证-嵌套索引数组?

Php Laravel 4验证-嵌套索引数组?,php,laravel,Php,Laravel,我有各种各样的东西 $foo = []; $foo['stuff']['item'][0]['title' => 'flying_lotus']; $foo['stuff']['item'][1]['title' => 'various_cheeses']; $foo['stuff']['item'][2]['title' => 'the_career_of_vanilla_ice']; $foo['stuff']['item'][3]['title' => 'welsh

我有各种各样的东西

$foo = [];
$foo['stuff']['item'][0]['title' => 'flying_lotus'];
$foo['stuff']['item'][1]['title' => 'various_cheeses'];
$foo['stuff']['item'][2]['title' => 'the_career_of_vanilla_ice'];
$foo['stuff']['item'][3]['title' => 'welsh_cats'];
如何使用Laravel4中的Validator方法验证“title”键

这是我到目前为止所拥有的

$validator = Validator::make($foo, ['stuff.item.???.title' => 'required']);

我完全被索引数组弄糊涂了。任何帮助都会很好。

以下答案适用于Laravel正如@Cryode所说,Laravel目前没有提供现成的功能。我创建了一个扩展默认Laravel验证器的类,以添加一个
iterate($attribute,$rules,$messages)
方法

它还可以递归地遍历数组,这样(例如)如果你有任意数量的“书籍”,其中每本都可能有任意数量的“引用”,这仍然有效,而@Cryode的示例没有这样做,因此这是一个更健壮的例子


除了@Cryode answer,还有我的laravel 5期

我的表单有一个数据库id索引。所以我的表单字段有索引

$foo['stuff']['item'][8]['title' => 'flying_lotus'];
$foo['stuff']['item'][12]['title' => 'various_cheeses'];
$foo['stuff']['item'][23]['title' => 'the_career_of_vanilla_ice'];
我用foreach来达到我的目标

foreach($request->input()['stuff']['items'] as $key => $value){
    $rules["stuff.items.{$key}.title"] = 'required';
}
和自定义错误消息

foreach($request->input()['stuff']['items'] as $key => $value){
    $messages["stuff.items.{$key}.title.required"] = 'Each Title is required...';
}
验证

Validator::make($request->input(), $rules, $messages);

我渴望看到答案:)我一直在做的非常混乱…通过做一个foreach,然后将结果存储在另一个数组中,然后检查该数组是否有错误,并显示感谢以获得一个非常简洁的答案。我有一种感觉,解决方案不会“开箱即用”,但您的第一种方法会很好地工作。干杯@Cryode,如果我有嵌套参数,我可以用与案例1相同的方法来做吗?我不需要创建新的规则,我只需要一种方法来验证表单项。这是否已经用Laravel 5测试过?没有。不过,我实际上提交了一个拉取请求,希望将其合并为4。所有测试都通过了,但目前处于悬而未决的状态。
Validator::make($request->input(), $rules, $messages);