2017-04-16 75 views
0

後,這是我的簡單結構:Laravel 5.4以便通過相關的表使用`with`聲明

public class Post{ 
    public function user(){ 
    return $this->belongsTo(User::class); 
    } 
} 

這是我的查詢(查詢有分頁):

$query = Post::query(); 
$query->with('user'); 

我想按user.name排序。
現在,我知道我可以去$query->with('user',function(){...order by here});
但我需要一個分離的方法,我可以稍後在堆棧中運行。

$query->user->orderBy('name'); 
$query->user()->orderBy('name'); 

https://stackoverflow.com/a/38741988/936651說,這是可能的,但我得到的錯誤:Undefined property/method: Illuminate\Database\Eloquent\Builder::$user

有什麼辦法由相關表使用with語句後進行排序?

感謝

回答

0

您的代碼不起作用,因爲當你這樣做$query = Post::query();它會返回查詢生成器的實例,所以當你$query->user()後,因爲查詢生成器沒有方法給你一個錯誤user(),該方法存在於Post模型中。

,因爲你提到你已經知道怎麼做with()方式,我將不提供任何代碼..

+0

你能提供的代碼示例嗎? – SexyMF