php - 仅显示使用 laravel 雄辩关系的关注用户发布
问题描述
我有 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');
}
每个帖子都属于某个用户。我有一个关注列表,其中用户有关注用户。在关注模型中有 2 列,关注的用户user_id
和follow_id
关注用户的用户。
现在我想在新闻源中显示帖子我想显示我关注的用户的帖子和我的帖子。
我如何用 Laravel 雄辩的关系向他们展示 我正在使用 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);
试试这个
推荐阅读
- angular - 使用 npm 包 rxjs 中的功能,而无需在 Angular 应用程序中使用 npm install
- c# - 为扩展方法创建特定于硬件的委托
- javascript - 如何在 JavaScript 中使用`application/octet-stream`
- r - R:使用 rvest 和 purrr:map_df 构建数据框:如何处理不完整的输入
- python - 如何为多变量、多步 LSTM 配置密集输出层
- python - macos 库上的 pymqi 未加载:@rpath/libmqic_r.dylib pymqe
- javascript - 使用自定义组件时,onChange 处理程序不会触发
- python - 在验证表单上始终输出月份的“十二月”:webapp2 和 Google App Engine (Windows 7)
- javascript - Can I use a dictionary as my 'data' object for rectangles?
- python - Why is math.inf a float and why can't I convert it to an integer?