使用输入字段作为数组“title []”的Laravel验证将始终出现相同的错误

时间:2016-11-08 18:28:51

标签: laravel validation laravel-5.3

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

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

我收到此错误:

enter image description here

我试过使用像这样的简单的纯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;
}

3 个答案:

答案 0 :(得分:1)

将您的验证写入个别请求文件中。这个('title'=&gt;'required | min:2')验证不适用于数组输入。尝试使用此技术进行动态字段验证。

public function rules()
{
  $rules = [

  ];

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

  return $rules;
}

答案 1 :(得分:0)

好的,我终于解决了这个问题。在Laravel 5.3中,某些内容已更改,您无法为字段名称添加空数组括号。

您必须在...内声明索引:

这不起作用

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

但这有效

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

更新

所以现在解决了这个问题后,我知道如果你把空[]括号,如果有多个具有相同名称的输入字段,这将有效...但如果你放空括号,你可以选择动态添加新字段我做了......那么带有空数组括号的单个字段将会失败,因为你实际上没有数组......并且你必须将[0]内的一些索引放入... 然后它工作

答案 2 :(得分:0)

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