Laravel 将输入字段作为数组进行验证 "title[]" 总是抛出相同的错误

Laravel validation with input field as array "title[]" throws always the same error

无论我使用哪种验证规则,只要我在输入名称中有一个数组符号,就像这样

<div class="form-group">
  {!! Form::label('titile', '* Eventname: ', ['class' => 'control-label']) !!}
  {!! Form::text('title[]', null, ['class' => 'form-control', 'required']) !!}
</div>

我收到这个错误:

我试过像这样使用简单的 html 输入

<input type="text" name="title[]" />

甚至这样

{!! Form::text('title', null, ['name' => 'title[]','class' => 'form-control', 'required']) !!}

但没有任何效果。

只有当我使输入字段没有数组符号时 [] 验证才能正常工作...

我的验证规则是这样的

    $this->validate($request, [
        'title' => 'required|min:2',
    ]);

我不知道还能做什么,如果有人有类似的问题请帮助。

更新:

我已经试过了,现在只有一个表单输入:

    <div class="form-group">
        {!! Form::label('title', '* Eventname: ', ['class' => 'control-label']) !!}
        {!! Form::text('title', null, ['name' => 'title[]','class' => 'form-control', 'required', 'placeholder' => 'z.B. Deutscher Filmpreis']) !!}
    </div>

-

public function rules()
{
    $rules = [

    ];

    foreach($this->get('title') as $key => $val)
    {
        $rules['title.'.$key] = 'numeric';
    }


    return $rules;
}

在单独的请求文件中写入您的验证。此 ('title' => 'required|min:2') 验证不适用于数组输入。尝试使用此技术进行动态字段验证。

public function rules()
{
  $rules = [

  ];

  foreach($this->request->get('title') as $key => $val)
  {
    $rules['title.'.$key] = 'required|min:2';
  }

  return $rules;
}

好的,我终于解决了这个问题。在 Laravel 5.3 中发生了一些变化,您不能为字段名称放置空数组括号。

你必须在里面声明索引...例如:

这行不通

{!! Form::text('title[]', null, ['class' => 'form-control', 'required']) !!}

但这行得通

{!! Form::text('title[0]', null, ['class' => 'form-control', 'required']) !!}

更新

所以在解决这个问题之后我现在知道如果你放空 [ ] 括号如果你有多个同名的输入字段这将起作用......但是如果你放空括号并且你可以选择添加新字段像我一样动态...那么带有空数组括号的单个字段将失败,因为您实际上没有数组...并且您必须在其中放置 [0] 一些索引... 然后就可以了

laravel 新闻网站上的很好的例子。 https://laravel-news.com/2015/11/laravel-5-2-a-look-at-whats-coming/