【发布时间】:2018-01-17 17:59:56
【问题描述】:
如何将多个复选框值保存到数据库中?现在该值存储在不同的行中。示例:我选择了值 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();
}
【问题讨论】:
-
dd($request->input("item")) 它给了你什么以及究竟发生了什么,你是否正在使用此代码将任何数据保存到数据库。
-
array:2 [▼ 0 => "one" 1 => "two" ] 如果我选中复选框并收到此错误,这就是我得到的结果:SQLSTATE[HY000]:一般错误: 1364 字段'user_id'没有默认值(SQL:插入
report(item,updated_at,created_at)值(一,2018-01-17 08:08:02, 2018- 01-17 08:08:02)) -
我在数据库中有 report、item、user_id、postqs_id 字段。报告和项目默认值为空。如果我删除 foreach 我可以保存报告,user_id,postqs_id 但如果我添加 foreach 以保存复选框值,则显示该错误。
标签: php database laravel checkbox