gpt4 book ai didi

php - Laravel - 对链接表的列求和?

转载 作者:行者123 更新时间:2023-11-29 19:04:44 25 4
gpt4 key购买 nike

我有一个 Laravel 5.4 项目,我试图对链接表的列进行求和,同时尽可能保持 Laravel 的 Eloquent 性。

<小时/>

以下是我正在使用的两个模型:

电影模型连接到数据库中的“电影”表,该表填充了电影和电影数据:

电影.php

class Movie extends Model
{

public function votes()
{
return $this->hasMany(MovieVote::class, 'movie_id');
}
}
<小时/>

MovieVote 通过外键“movies_votes”与“电影”表绑定(bind),并包含对该电影的投票。赞成票为 1,反对票为 -1。

MovieVote.php

class MovieVote extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array
*/

protected $table = 'movie_votes';

protected $fillable = ['user_id', 'movie_id', 'vote';

public function movie()
{
return $this->belongsTo('App\Movie');
}
<小时/>

此时对我来说一切都非常简单,我可以在修补程序中进行 Eloquent 查询,例如

$movie = App\Movie::find(106)
$movie->votes

这显示了结果。我当然喜欢这种轻松的感觉。

=> Illuminate\Database\Eloquent\Collection {#688
all: [
App\MovieVote {#687
id: 1,
user_id: 1,
movie_id: 106,
vote: 1,
created_at: "2017-04-23 03:32:29",
updated_at: "2017-04-23 03:32:30",
},
App\MovieVote {#104
id: 27,
user_id: 2,
movie_id: 106,
vote: -1,
created_at: "2017-04-23 04:12:51",
updated_at: "2017-04-23 04:12:52",
},
],
}
<小时/>

我的问题...

如何获取“投票”总和大于 1 的所有电影,同时将所有内容保留为 Eloquent 集合,以便我可以在 View 中使用 $movie->title 等参数?

我尝试了一些“其他”方法,例如循环和计票、将它们添加到数组中等等,但我失去了所有的 Eloquent ,所以我必须遗漏一些东西......

任何帮助将不胜感激。

最佳答案

不久前我在使用 Slim PHP Framework 和 Eloquent 时也遇到了同样的问题。但解决方案大致相同。

您可以将范围与 selectRaw 一起使用。

查看我的回答:https://stackoverflow.com/a/43139953/1568059

关于php - Laravel - 对链接表的列求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43598070/

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