【问题标题】:Query with two laravel models and return result使用两个 laravel 模型查询并返回结果
【发布时间】:2018-01-05 10:54:35
【问题描述】:

我有两个模型,UserPost

用户模型:

 public function posts()
    {
        return $this->hasMany('App\Post');

    }

后模型:

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

在我的控制器中,我有一个公共函数:

$users = User::orderBy('is_ban', 'desc')->paginate(10);
$posts = Post::orderBy('created_at', 'desc')->paginate(10);

按预期工作。 我在用户表 `is_ban' 中也有一列,它是布尔类型。

我正在寻找将返回以下内容的查询:

只获取is_ban=false的用户发布的帖子

【问题讨论】:

  • 你能看看两个模型中的关系方法代码吗?
  • @SaidbakR 我已经更新了代码

标签: php sql laravel-5


【解决方案1】:

也许我还没有理解你,但我希望它会有所帮助。您可以将其添加到您的 Post 模型中

    public function getBannedUsersPosts()
    {
        return self::whereIn('user_id', User::where('is_ban', 0)->pluck('id'))->get();
    }

【讨论】:

  • 如果我想在我的控制器中使用它,那么它将是$posts = Post::whereIn('user_id', User::where('is_ban', 0)->pluck('id'))->get(); ??
  • 太棒了!顺便说一句,对于这个问题,函数名称应该是 getUnBannedUserPosts() ;)
  • 是的,应该))我认为您需要被禁止的用户的帖子))
猜你喜欢
  • 2016-09-28
  • 2020-06-17
  • 2011-07-28
  • 2021-10-24
  • 2017-07-10
  • 1970-01-01
  • 1970-01-01
  • 2018-05-28
  • 1970-01-01
相关资源
最近更新 更多