仅显示使用 laravel eloquent 关系的已关注用户 post
Show only Followed users post using laravel eloquent relationship
我有 3 个型号 User
、Follow
和 Post
这些关系是这样的:
User
型号:
public function userPosts()
{
return $this->hasMany('App\Model\User\Post');
}
public function follows()
{
return $this->hasMany('App\Model\User\Follow','user_id');
}
public function fans()
{
return $this->hasMany('App\Model\User\Follow','follow_id');
}
Post
型号
public function user()
{
return $this->belongsTo('App\User');
}
Follow
型号
public function user()
{
return $this->belongsTo('App\User');
}
public function user_follow()
{
return $this->belongsTo('App\User','follow_id');
}
每个 post 都属于某个用户。我有一个关注列表,其中用户有关注用户。在关注模型中有 2 列,user_id
关注的用户和 follow_id
关注用户的用户。
现在我想在新闻源中显示 post 我想显示我关注的用户的 post 和我的 post。
我怎样才能展示他们与Laraveleloquent的关系
我正在使用 Laravel 7.2
Post::where(function ($query) {
//generating followers and own user_id array
$followers = Follow::where('user_id', Auth::user()->id)->get();
$followers_and_me = [];
array_push($followers_and_me, Auth::user()->id);
foreach ($followers as $item) {
array_push($followers_and_me, $item->follow_id);
}
//query for specific posts
for ($i =0; $i<count($followers_and_me); $i++) {
$query->orWhere('user_id', $followers_and_me[$i]);
}
})->orderBy('id', 'desc')->paginate(5);
试试这个
我有 3 个型号 User
、Follow
和 Post
这些关系是这样的:
User
型号:
public function userPosts()
{
return $this->hasMany('App\Model\User\Post');
}
public function follows()
{
return $this->hasMany('App\Model\User\Follow','user_id');
}
public function fans()
{
return $this->hasMany('App\Model\User\Follow','follow_id');
}
Post
型号
public function user()
{
return $this->belongsTo('App\User');
}
Follow
型号
public function user()
{
return $this->belongsTo('App\User');
}
public function user_follow()
{
return $this->belongsTo('App\User','follow_id');
}
每个 post 都属于某个用户。我有一个关注列表,其中用户有关注用户。在关注模型中有 2 列,user_id
关注的用户和 follow_id
关注用户的用户。
现在我想在新闻源中显示 post 我想显示我关注的用户的 post 和我的 post。
我怎样才能展示他们与Laraveleloquent的关系 我正在使用 Laravel 7.2
Post::where(function ($query) {
//generating followers and own user_id array
$followers = Follow::where('user_id', Auth::user()->id)->get();
$followers_and_me = [];
array_push($followers_and_me, Auth::user()->id);
foreach ($followers as $item) {
array_push($followers_and_me, $item->follow_id);
}
//query for specific posts
for ($i =0; $i<count($followers_and_me); $i++) {
$query->orWhere('user_id', $followers_and_me[$i]);
}
})->orderBy('id', 'desc')->paginate(5);
试试这个