這是我的模型Laravel:排序依據相關表格,並與
- 用戶
- 角色
和關係的模型之間有很多很多。
我想這樣的創建查詢:
return User::with('roles')->orderBy('roles.id')->paginate();
我不想做join
因爲我創建了一個基類每一個模型。我也不想在get
之後使用orderBy
,因爲它必須加載我所有的數據,之後我應該可以對它進行分類和分頁。所以這不是一個好主意。
這是我的模型Laravel:排序依據相關表格,並與
和關係的模型之間有很多很多。
我想這樣的創建查詢:
return User::with('roles')->orderBy('roles.id')->paginate();
我不想做join
因爲我創建了一個基類每一個模型。我也不想在get
之後使用orderBy
,因爲它必須加載我所有的數據,之後我應該可以對它進行分類和分頁。所以這不是一個好主意。
User::where('role_id','!=','0')->orderBy('role_id','DESC')->paginate(10);
通常最好是解釋一個解決方案,而不是隻發佈一些匿名代碼行。你可以閱讀[我如何寫一個好的答案](https://stackoverflow.com/help/how-to-answer),還有[完全解釋基於代碼的答案](https://meta.stackexchange.com /問題/ 114762 /解釋-entirely-%E2%80%8C%E2%80%8Bcode基於-答案)。 –
你可以嘗試這樣的事情:
return User::with(['roles' => function ($query) {
$query->orderBy('id', 'desc');
}])->paginate();
但這隻會責令預先加載的屬性,但如果你有興趣使用的加入,你可以有這樣的事情:
return User::with('roles')
->join('roles', 'user.id', '=', 'roles.user_id')
->orderBy('roles.id', 'desc')
->paginate();
在此您可以輕鬆使用paginate
,這是您的主要關注點。
希望這會有所幫助。
沒有加入是不可能的(AFAIK)。 –