错误显示“ QueryException数组到字符串的转换”。
在下面找到我的代码:
CreateProject.php
<label for="client_id">Select Client*</label>
<select name="client_name_array" id="">
@foreach ($clientsArray as $option)
<option value="{{$option}}">{{$option}}</option>
@endforeach
</select>
控制器:
$projects = new Project([
'client_name' => $request->input('client_name_array'),
]);
$projects->save();
return redirect('/projects')->with('status', 'Project updated!');
如果您需要有关此查询的更多信息,请告诉我。预先感谢。
答案 0 :(得分:0)
我不确定,但这可能是答案。 在CreateProject.php中,您已使用
@foreach ($clientsArray as $option)
<option value="{{$option}}">{{$option}}</option>
@endforeach
这里$option
也是一个数组,将其作为值传递给名称client_name_array
。
提交表单时,在控制器上,$request->input('client_name_array')
返回一个数组。但是,变量client_name
在数据库中似乎是字符串类型。不能通过这种方式将数组类型更改为字符串类型。希望你明白我的意思。
答案 1 :(得分:0)
您可以尝试Attribute Casting雄辩的模型功能。
在您的Project
类中添加
protected $casts = [
'client_name_array' => 'array',
];
因此,数组数据将在保存时自动转换为字符串,并在检索时自动转换为数组。 参见Laravel: Attribute Casting
我已将此添加到先前的答案中,但随后决定自己制作。
还要更改此内容:
<select name="client_name_array" id="">
到
<select name="client_name_array[]" id="">