首页 > 解决方案 > 无法在 Laravel eloquent 中更新集合

问题描述

有一个表结构如下:(主键:user_id,record_id)

+---------+-----------+-------+
| user_id | record_id | value |
+---------+-----------+-------+
|       1 |         1 |   100 |
|       1 |         2 |   200 |
|       2 |         1 |   300 |
|       2 |         2 |   400 |
+---------+-----------+-------+

当我在控制器中通过 eloquent-query更改value参数时,如下所示:

$playerRecord = Test::where('user_id', '=', $player_id)->where('record_id', '=', '1')->first();
$playerRecord->value = $user_value1;            
$playerRecord->save();

我有一个错误:https ://flareapp.io/share/47qg8ZEm#F49

如果我在模型中只定义一个主键,那么所有具有这个键的记录都会被更新,尽管我强制更新了一个特定的记录。

标签: phplaravel

解决方案


  $playerRecord = Test::where('user_id', '=', $player_id)->where('record_id', '=', '1')->update(['value'=>$user_value1]);
    if($playerRecord){
     return "data updated";
}else{
    return "data not found";
}

推荐阅读