2017-07-29 73 views
1

我有两个型号,UserPost查询有两个laravel模型和返回结果

用户模型:

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

+0

你可以把这两种模型中的关系方法代码? – SaidbakR

+1

@SaidbakR我已更新代码 – Saurabh

回答

1

也许我没有理解你的用户发帖子,但我希望这会有所帮助。你可以将它添加到你的Post模型

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

如果我想在我的控制器中,那么它将是'$ posts = Post :: whereIn('user_id',User :: where('is_ban',0) - > pluck(' id')) - > get();'' – Saurabh

+0

真棒这工作!顺便说一句,这个问题的函数名应该是'getUnBannedUserPosts()';) – Saurabh

+0

是的,它应该)))我认为你需要被禁止的用户职位)) –