質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

3503閲覧

Laravel5.2 Eagerロードでのソートについて

S.T

総合スコア93

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

1クリップ

投稿2016/06/01 02:53

お世話になります。
LaravelでModelを定義してwithメソッドでデータを取得しているのですが、
withで指定したModelのソートがうまく行なえず途方にくれています。。
やりたいことは、ユーザー名の昇順・降順でデータを取りたいと思っています。

ヒントでも良いので、情報いただけるとありがたいです。
情報に過不足ありましたら、ご指摘ください!
よろしくお願いしますm(_ _)m

PHP

1//Controller 2$order = order::with(['user' => function($query) { 3 $query->orderBy('user.name','DESC'); 4}])->paginate(5); 5 6foreach($order as $value) { 7 //出力 1,2,3,4,5 8 Log::info($value->user->name); 9} 10 11 12//order Model 13 public function user() 14{ 15 return $this->belongsTo('App\Model\User') 16}

【テーブル定義】
order
id
user_id
name

user
id
name

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

それはそうでしょう。
orderの順番が変わるわけではないのですから。

おそらく公式のドキュメントを見たのかと思いますが公式の場合はwithから取得する内容が複数件あるためやってるだけで・・・。(1対多の関係になるのであれば意味がある)
もしやるのであれば

$order = order::with('user')->orderBy('user.name','DESC')->paginate(5);

とかではないでしょうか?
ちょっと中身でjoinしているかどうかは把握してないのでデバッガーなりで確認していただければ・・・。

投稿2016/06/02 05:17

fagai

総合スコア2158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問