2017-07-29 35 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

是的,它應該)))我認爲你需要被禁止的用戶職位)) –