表单部分(字段文本数组)[1]:
<div id="cp1">
<div class="form-group">
{!! Form::text('names[]',null,['class'=>'form-control', 'maxlength'=>'30', 'placeholder'=>'Name']) !!}
</div>
<div class="form-group">
{!! Form::text('contents[]',null,['class'=>'form-control', 'maxlength'=>'30', 'placeholder'=>'Content']) !!}
</div>
</div>
当我发送表单时,验证失败:htmlentities()期望参数1是字符串,数组给定(View:/Applications/MAMP/htdocs/telovendogdl/resources/views/ads/new.刀片.php)
这是表单request中的规则:
return ['title' => 'required|min:8|max:100',
'description' => 'required|min:10|max:1100',
'price' => 'required|integer|max:15',
'city_name'=> 'required|max:70',
'category_id' => 'required|integer',
'delivery'=> 'max:70',
];
这是控制器中的函数:[2]
public function newAdStore(StoreNewAdRequest $request)
{
$newAd = new Ad;
$newAd->user_id = 'Auth::user()->id;
$newAd->active = 0;
$newAd->city_name = $request->input('city_name');
$newAd->category_id = $request->input('category_id');
$newAd->fill($request->all());
$newAd->save();
}
,但只有当我发送数组字段的形式[1]失败,当一个删除这个字段全部工作?[2]发生了什么?
我不清楚你的代码,但我会试着帮助你调试你的代码…首先,您需要在StoreNewAdRequest中添加一个规则来处理数组,而不是名称[]和内容[]的字符串:
public function rules()
{
$rules = [
'field2' => 'required|...',
'field3' => 'required|...',
....
];
foreach($this->request->get('names') as $key => $val)
{
$rules['names.'.$key] = 'required|max:100';
}
return $rules;
}
确保你的模型中有正确的可填充参数
注意:问题可能发生在这个阶段
$newAd->fill($request->all())
你正在尝试填充一个名称数组[]&