gpt4 book ai didi

php - Laravel : UpdateOrCreate on Relation?

转载 作者:行者123 更新时间:2023-12-03 20:30:44 27 4
gpt4 key购买 nike

某用户 hasOne 车。

用户

id | name
1 | Bob
2 | Alice

汽车
idMember |  color  |  energy
1 | blue | 0.95

用户 我有课
public function car()
{
return $this->hasOne('App\Car','idMember');
}

我想像这样在关系模型上调用 updateOrCreate :
$user->car()->updateOrCreate(['idMember' => $user->id], ['color' => 'red', 'energy' => '0.1']); 

但是,我收到错误消息

"SQLSTATE[42S22]: Column not found: 1054 Unknown column 'id' in 'where clause' (SQL: update cars set color = red, energy = 0.1, updated_at = 2018-01-12 15:26:47 where id is null)



他为什么要找

id is null



?

最佳答案

需要明确的是,您的原始语法是正确的。您可以在关系上使用它:

$user->car()->updateOrCreate(['idMember' => $user->id], [
'color' => 'red',
'energy' => '0.1',
]);
这将检查是否有 caridMember === $user->id ;如果是,请更新 colorenergy .如果没有,它会创建一个 caridMember 记录, color , 和 energy .
我没有测试过,但是根据第一个参数的数组类型,你应该可以传入多个匹配条件,比如
['idMember' => $user->id, 'day' => 'tuesday']

关于php - Laravel : UpdateOrCreate on Relation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48229383/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com