如何将多个复选框值保存到数据库中?现在值存储在不同的行中。例如:我选择了值1和2.因此,1行中的值为1,另一行中的值为2。
刀片
<form enctype="multipart/form-data" action="/report/{{$postqs->id}}"
method="POST">
<input type="checkbox" name="item[]" value="one" />1
<input type="checkbox" name="item[]" value="two" />2
<input type="checkbox" name="item[]" value="three" />3
<div class="row">
<div class="form-group">
<label class="control-label col-sm-2"> Others:</label>
<div class="col-sm-7">
<textarea name="report" id="report" class="form-control"></textarea>
</div>
</div>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="submit" class="pull-right btn btn-sm btn-primary">
</div></div></div>
</form>
报告模型
protected $fillable = ['report','postqs_id','user_id','item'];
商店控制器:
public function store(Request $request,Postqs $postqs,$id,Report $report,
Admin_report $admin_report)
{
foreach ($request->input("item") as $key=>$value){
$add_item = new Report;
$add_item->item= $value;
$add_item->user_id= Auth::user()->id;
$add_item->postqs_id=$id;
$add_item->save();
return back();
}
答案 0 :(得分:1)
您应该将项目作为键和值分开,以便您可以保存值并显示它需要user_id的错误,因此请将user_id添加到其中。并且您的代码应如下所示:
GET https://graph.windows.net/myorganization/users?api-version=1.6
因为你想要复选框的值,而不是键。按照您的方式,它将键和值保存在项目列中。
#Update
在这种情况下(将数组保存到DB中)你不要将项目输入放入foreach循环中,只需将其保存为原样,然后你必须告诉你的模型通过放置$ casts将其作为数组处理属于报告模型:
foreach ($request->input("item") as $key=>$value){
$add_item = new Report;
$add_item->item= $value;
$add_item->user_id= Auth::user()->id;
$add_item->postqs_id=$id;
$add_item->save();
}
这样它应该将数组保存到items列中。之后,您只需保存以下代码中的项目:
protected $casts = [
'items'=>'array',
];
请注意,在这种情况下不需要foreach循环。
答案 1 :(得分:0)
您似乎需要添加user_id
来插入新的Report
。
$user = auth()->user();
foreach ($request->input("item") as $item){
$add_item = new Report;
$add_item->user_id= $user->id;
$add_item->item= $item;
$add_item->save();
}