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/
无论我使用哪种验证规则,只要我在输入名称中有一个数组符号,就像这样
<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/