在Laravel PHP中使用foreach更新字段

我正在尝试根据其唯一字段taskCode

更新多行

,并将更新taskWeight中的tbl_projtask字段

我有这个2个变量

  1. $request->dataWeight 此变量来自ajax请求,该请求包含类似95,75,65的值,该值之间用逗号分隔。

  2. $request->dataWeightAttr 此变量来自ajax请求,其中包含类似TaskCode1,TaskCode2,TaskCode3

  3. 的内容

在我的MainController.php

我有此代码

    $myString = $request->dataWeightAttr;
        foreach($myString as $value){
            DB::table('tbl_projtask')
            ->where('taskCode',$value)
            ->update([
            'taskWeight'=> $request->dataWeight,'by_id'=> auth()->user()->id,'updated_by'=> auth()->user()->name,'updated_at' => now()
            ]);
        }

您可以在我的update代码中看到

我使用request->dataWeightAttr查找应更新的行,并使用$request->dataWeight特定taskCode的值

我这样做正确吗?

zyqmer 回答:在Laravel PHP中使用foreach更新字段

如果要更新相同的字段但使用不同的ID,则可以使用whereIn代替foreach。

 DB::table('tbl_projtask')
  ->whereIn('taskCode',$request->dataWeightAttr)
  ->update([
     'taskWeight'=> $request->dataWeight,'by_id'=> auth()->user()->id,'updated_by'=> auth()->user()->name,'updated_at' => now()
 ]);
,

将您的字符串转换为数组

$dataWeight = explode(',',$request->dataWeight); // convert to array
$dataWeightAttr = explode(',$request->dataWeightAttr); // convert to array 

假设两个数组中都有相关值。

foreach($dataWeightAttr as $key => $value){
    DB::table('tbl_projtask')
    ->where('taskCode',$value)
    ->update([
    'taskWeight'=> $dataWeight[$key],'updated_at' => now()
    ]);
}
本文链接:https://www.f2er.com/3161618.html

大家都在问