从Laravel中的输入数组显示验证错误

问题描述 投票:2回答:4

我正在像这样向我的控制器提交输入数组:

<input id="box-1-nickname" name="box-nickname[]" class="form-control" type="text" placeholder="Required">
<input id="box-2-nickname" name="box-nickname[]" class="form-control" type="text" placeholder="Required">

我正在做这样的验证:

$validator = Validator::make(Input::all(), array(
        'supplies-count' => 'required|in:0,1,2,3,4',
    ));

$arrayValidator = Validator::make(Input::all(), []);

$arrayValidator->each('box-nickname', ['required|min:1|max:60']);

if( $validator->fails() || $arrayValidator->fails() ) {
    return Redirect::route('route-2')
           ->withErrors($arrayValidator)
           ->withInput();
}

问题是,当我尝试检查此类错误时,它不起作用:

if( $errors->has('box-1-nickname') ) { echo ' has-error'; }
php validation laravel
4个回答
4
投票

您可能早就找到了解决方案,但是对于偶然发现此问题的其他人:


0
投票

错误是通过name属性而不是id收集的,并且Laravel的默认MessageBag变量是$messages,而不是$errors


0
投票

$errors是正确的,但是您应该检查box-nickname。如您所见,由于通用名称,您将遇到无法识别哪个框是什么的问题。我认为给每个输入一个唯一名称(例如box-1box-2)并在服务器端执行for循环以检索以box-开头的输入的最简单方法。


0
投票

在视图中显示输入数组错误(从L5.8起)

© www.soinside.com 2019 - 2024. All rights reserved.