gpt4 book ai didi

使用 Eloquent 对数据进行排序

转载 作者:行者123 更新时间:2023-12-04 00:22:04 24 4
gpt4 key购买 nike

我是 laravel 的新手(从 CI 切换过来的)并且 Eloquent ORM 在某些时候仍然有点神秘!

这是我的问题:

我想使用 Eloquent 对我的数据库中的数据进行排序。

我有一张 table 帖子 和一张 table 评论 (帖子有很多评论,评论属于帖子)

每条评论都有一个时间戳(=> created_at 字段),我想按以下方式排序:

(我们在 profil 页面上,所以 $user->id 是用户的 id(显然))

我想要来自该用户发表评论的帖子中的每一个帖子,并通过评论的 created_at 字段对所有这些帖子进行排序

我真的很想完全使用 Eloquent,或者至少是 Fluent,但我不知道这样做的正确方法。

我希望我说的很清楚,谢谢你的时间!

最佳答案

我刚刚在我正在开发的项目中遇到了同样的问题。我所看到的每个地方都看到了 usort()uasort()作为解决此问题的建议方法。 ( Collection::sort() 只是 uasort() 的包装器)但这并没有让我满意,因为我为什么要使用 PHP 来排序 SQL 应该使用 ORDER BY 子句为我做的事情???我最终使用 getXXXAttribute() 方法以这种方式实现它:

class Post extends Eloquent {
public function comments()
{
return $this->hasMany('Comment');
}

public function getCommentsAttribute()
{
$comments = $this->comments()->getQuery()->orderBy('created_at', 'desc')->get();
return $comments;
}
...
}

关于使用 Eloquent 对数据进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15533659/

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