2017-10-07 10 views
0

でこれはそれらのモデルの間でLaravel:関連テーブルでORDERBYとは

  • ユーザー
  • 役割

との関係私のモデルでは、多くの多くのです。

私はこのようなクエリを作成したい:

return User::with('roles')->orderBy('roles.id')->paginate(); 

私はすべてのモデルの基本クラスを作成したので、私はjoinを望んでいません。私はまた、getの後にorderByを使用したくないので、すべてのデータをロードしなければならないので、それをソートして改ページできるはずです。だから、それは良い考えではありません。

+0

参加できない(AFAIK)。 –

答えて

0
User::where('role_id','!=','0')->orderBy('role_id','DESC')->paginate(10); 
+0

通常、匿名コードの行を単にポストするのではなく、解決策を説明する方がいいです。 [良い答えを書くにはどうすればいいですか]と[コードベースの回答を完全に説明する](https://meta.stackexchange.com)を読むことができます。/questions/114762/explain-entire-%E2%80%8C%E2%80%8Bcode-based-answers)。 –

1

あなたはこのような何か試すことができます。

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を簡単に使用することができます。

これが役に立ちます。

関連する問題