我从视图中获取复选框值(多个值),其中用户选择他们感兴趣的主题并在我的数据库的列中存储多个值。所以使用serialize()将它们存储在我的数据库中。当我尝试这样做。它抛出了上面提到的错误。我在Stackoverflow中查看了之前的问题并进行了一些更改,例如
$data = array(
'topics' => $post['topics'] ,);
到
$data = [
'topics' => $post['topics'] ,];
再次显示相同的错误,这是我的视图
<div class="panel-body">
<center><h2> Select the topic you are interested in</h2></center><br>
<form enctype="multipart/formdata"class="form-horizontal" role="form" method="POST" action="{{ url('/topicStore') }}">
{{ csrf_field() }}
<center>
<input type="checkbox" name="topics[]" value="sports"> Sports</input>
<input type="checkbox" name="topics[]" value="education"> Education</input>
<input type="checkbox" name="topics[]" value="family"> Family</input>
<input type="checkbox" name="topics[]" value="friends"> Friends</input></center><br>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">
<i class="fa fa-btn fa-user"></i>Add topics
</button>
</div>
</div>
</div>
这是我的控制器。
public function storeSelection(Request $request)
{
$post = $request->all();
$val=\Validator::make($request->all(),
[
'topics' => 'required',
]);
if ($val ->fails())
{
return redirect()->back()->withErrors($val->errors());
}
else
{
$data = array(
'topics' => $post['topics'] ,
);
$topics = serialize($data);
$updatedata = DB::table('users')->where('name',\Auth::user()->name)
->update($data);
if ($updatedata>0) {
return redirect('home');
}
}
}
我想将从视图中获取的数据数组保存到数据库中的列中。我使用过serialize()
。还有其他更好的方法吗?