php Laravel多条件数据库更新

rn0zuynd  于 2023-06-04  发布在  PHP
关注(0)|答案(3)|浏览(169)

如何用多个条件更新数据库?
我的表名是工作

+----+-----+
| id | num |
+----+-----+
| 1  | 56  |
+----+-----+
| 2  | 44  |
+----+-----+
| 3  | 85  |
+----+-----+

如果输入值为id=1,num=17
该表应按如下方式更新

+----+-----+
| id | num |
+----+-----+
| 1  | 17  |
+----+-----+
| 2  | 44  |
+----+-----+
| 3  | 85  |
+----+-----+

或者如果值是id=4,num=56
更新后的表应如下所示

+----+-----+
| id | num |
+----+-----+
| 1  | 17  |
+----+-----+
| 2  | 44  |
+----+-----+
| 3  | 85  |
+----+-----+
| 4  | 56  |
+----+-----+

laravel中是否有Eloquent来更新表,如果没有,请给予我一个解决方案

$update=DB::table('work')
->updateOrInsert(['id'=>$request->MasterId,'Agent_num' => '$request->num',],['id' =>$request->MasterId, 'Agent_num'=>$request->$request->num]);
h4cxqtbf

h4cxqtbf1#

是的,你可以使用雄辩的查询来做到这一点。
下面是一个示例:
$your_object->where('id','id_value')->where('num','num_value')->update(['num' => value_to_update]);
请从下一次至少提供一些代码,你已经尝试,以便我们可以提供一个更好的解决方案,如果需要的。

yzuktlbb

yzuktlbb2#

让我们取一个用户表,其id为1,模型名为User,并且您希望更新他/她的信息,如用户id为4的号码/电话号码,可以如下所示

User::where("id",4)->update( 'phone_number'=>'923069096975' );

在你的例子中,你可以把你的模态名放在User,id的值放在4,列名放在phone_number,你想更新的值放在923069096975。
这是一个简单的解决你的问题

dldeef67

dldeef673#

这个问题有一个非常简单的答案。

Modal::where('id',4)->update([ 'num'=>56 ]);

基本上4和56也可以存储在变量中。上面的查询就像一个参考。假设我们把它赋值给如下的变量

$id = 4;
$number = 56;
Modal::where('id',$id)->update([ 'num'=>$number ]);

这是一个非常简单的答案。
如果您必须更新多个行以针对多个ID进行更新,则只需将查询放入如下所示的循环中。

$idsArr = array(1,4,5);
$numArrays = array(56,44,67);
foreach($idsArr as $key => $id){
                                // Modal is Eloquent Modal
 Modal::where('id',$id)->update([ 'num'=>$numArrays[$key] ]);

}

我们走吧

相关问题