如何使用laravel中的多个ID将单个值更新到数据库中?

时间:2017-10-25 12:24:05

标签: php laravel

任何人都可以帮助我,如何使用laravel中的多个ID将单个值更新到数据库中?

我有两个输入字段,请查看以下代码

具有多重选择的第一个输入(潜在客户ID' s)

<select class="form-control" name="assign_lead[]" multiple>

     @foreach ($sys_leads as $name) 

     <option value="{{$name->l_refcode}}">{{$name->l_fname}} {{$d->l_lname}} (Ref. Code: CL-{{$name->l_refcode}})</option>

     @endforeach  

</select>

单次选择的第二次输入

<select class="selectpicker form-control" name="assign_emp">
 @foreach ($employee as $emp)

<option value="{{$emp->name}}">{{$emp->name}}</option>

@endforeach  

</select>

我想要基于id的更新数据库,单个id更新它的工作,但我希望用单个单值更新多个id。

在laravel中使用db方法可以实现这一点吗?

 public function assignpost(Request $request){

  $assign_emp = $request->input('assign_emp');
  $l_refcode = $request->input('assign_lead');
  $l_leadassigneddate = date("Y-m-d");


   DB::update('update sys_leads set l_assignedStaff = ?, l_leadassigneddate = ? where l_refcode = ?',[$assign_emp,$l_leadassigneddate,$l_refcode]);

  return redirect('leads')->with([
       'message' => 'Lead Assigned Successfully'
  ]);  
 }

2 个答案:

答案 0 :(得分:0)

尝试使用以下代码更新多行:

DB::update('update sys_leads set l_assignedStaff = ?, l_leadassigneddate = ? where l_refcode IN (?)',[$assign_emp,$l_leadassigneddate,implode(", ",$l_refcode)]);

答案 1 :(得分:0)

尝试使用方法 whereIn()来约束查询和查询构建器的方法更新,例如:

DB::table('sys_leads')
          ->whereIn('l_refcode ', $l_refcode)
          ->update(['l_assignedStaff' => $assign_emp,
                    'l_leadassigneddate' => $l_leadassigneddate]);

https://laravel.com/docs/5.5/queries#updates