[英]Saving dynamic form field data in Laravel
我有一个for您可以通过单击按钮添加多行的方式,我想将数据存储到数据库中
这是我提交表单时遇到的错误-数组到字符串的转换
表单输入我没有发布form元素,因为我不需要在这里显示它
<input type="text" class="form-control" name="customer[]" />
<input type="text" class="form-control" name="produce[]" />
<select class="form-control" name="task[]">
<option value=""></option>
<option value="Pick Up">Pick Up</option>
<option value="Delivery">Delivery</option>
</select>
<input type="text" class="form-control" name="units[]" />
控制器代码
public function createManifest(Request $request)
{
$this->validate($request, [
// validate hidden
'date_val' => 'required',
'driver_name' => 'required',
'truck_num' => 'required',
'run_num' => 'required',
// validate fields
'customer' => 'required',
'produce' => 'required',
'task' => 'required',
'units' => 'required',
]);
$manifest = new Manifest([
'user_id' => Auth::user()->id,
'date' => $request->input('date_val'),
'driver_name' => $request->input('driver_name'),
'truck_number' => $request->input('truck_num'),
'run_number' => $request->input('run_num'),
'customer_name' => $request->input('customer'),
'produce' => $request->input('produce'),
'task' => $request->input('task'),
'units' => $request->input('units'),
]);
$manifest->save();
}
您尝试存储这些值列表的数据库列是字符串,并且您要将数组传递给Manifest的构造函数,因此会出现错误。
为了修复它,您需要告诉Laravel这些值将是数组,以便它可以在数组和字符串之间进行必要的转换-它在内部将其编码为JSON。
您需要在模型中添加以下内容:
protected $casts = [
'customer' => 'array',
'produce' => 'array',
'task' => 'array',
'units' => 'array',
];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.