如何以数组形式保存复选框值?

时间:2018-01-17 07:48:47

标签: php database laravel checkbox

如何将多个复选框值保存到数据库中?现在值存储在不同的行中。例如:我选择了值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();

    }

2 个答案:

答案 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();
}