gpt4 book ai didi

laravel - 加入后如何使用 Eloquent 流利语法更新记录?

转载 作者:行者123 更新时间:2023-12-02 16:49:15 27 4
gpt4 key购买 nike

我尝试使用流畅的语法和 eloquent 来达到与下面的 SQL 查询相同的结果。

UPDATE t
SET t.completed = t.completed + 1
FROM [groups] AS g
INNER JOIN [quotas] AS t ON t.qid = g.qid
WHERE g.iid = 12234

groups 表有一个名为 group 的模型。此外,quotas 表有一个名为 quota

的模型

连接两个模型并增加 quota.completed 属性的正确方法是什么?

请注意,每个模型都指向不同的数据库。

最佳答案

您首先需要定义配额之间的关系:

public function quota(){
return $this->hasOne('App\Quotas', 'qid', 'qid');
}

那么你的 Eloquent 查询将是:

Groups::where('iid', 12234)->with('quota')->first()->quota()->increment('completed');

这是假设 where 子句仅返回一行。如果它返回多个,您将需要循环访问返回的集合:

Groups::where('iid', 12234)->with('quota')->get()->each(function( $item, $key ){
$item->quota()->increment('completed');
});

或者,您可以使用 QueryBuilder:

DB::connection('connForGroups')->table('groups')
->join('dbname.quotas', 'groups.qid', '=', 'dbname.quotas.qid')
->where('groups.iid', '=', 12234)
->increment('dbname.quotas.completed');

关于laravel - 加入后如何使用 Eloquent 流利语法更新记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42237949/

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