gpt4 book ai didi

php - 显示用户通过 Laravel 关系关注的用户的帖子

转载 作者:行者123 更新时间:2023-11-29 06:09:22 25 4
gpt4 key购买 nike

我想显示当前用户关注的每个人的帖子,按日期降序排列。

我有一个多对多的关系,提供用户关注的所有人。

$users = User::find(Auth::user()->id)->follow()->get();

我有一个一对多的关系来显示任何用户的帖子。

$updates = App\User::find(?????)->updates()->orderBy('created_at', 'desc')->get();

问号表示需要放置关注者 ID 的位置。

我可以将上面的查询放在 for each 循环中,但这显然是通过每个关注者而不是按日期顺序的所有帖子进行的。

我怀疑我可能需要建立新的关系并从头开始工作。任何人都可以建议。

用户模型

     public function updates()
{
return $this->hasMany('App\update');
}

/**
* User following relationship
*/
// Get all users we are following
public function follow()
{
return $this->belongsToMany('App\User', 'user_follows', 'user_id', 'follow_id')->withTimestamps()->withPivot('id');;;
}
// This function allows us to get a list of users following us
public function followers()
{
return $this->belongsToMany('App\User', 'user_follows', 'follow_id', 'user_id')->withTimestamps();;
}

}

更新模型

public function user_update()
{
return $this->belongsTo('App\User');
}

谢谢。

最佳答案

因为您需要这些帖子,所以在 Post 模型上开始查询,然后根据它们的关系过滤帖子可能会更容易。

假设您的 Post 模型与创建帖子的 Userauthor 关系,并且 User与跟随它的所有 User 有一个 follower 关系,你可以这样做:

$userId = Auth::user()->id;
$posts = \App\Post::whereHas('author.follower', function ($q) use ($userId) {
return $q->where('id', $userId);
})
->latest() // built in helper method for orderBy('created_at', 'desc')
->get();

现在,$posts 将是您的 Post 模型的集合,这些模型由您的经过身份验证的用户关注的用户创作。

关于php - 显示用户通过 Laravel 关系关注的用户的帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39276228/

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