Laravelのバリデーターは予め多彩なルールが用意されています。 私自身は.Net歴が長いので数値範囲はRangeのアノテーションみたいな感じで指定すればいいという先入観からちょっとハマりました。 …
単純に一つのモデル(テーブル)で並べ替えるだけならorderByを指定すれば良いですが、リレーション先の別モデルのカラムで並び替える場合は、Eloquentのリレーションでは出来ないため、以下のようにJOINする必要があります。
サンプルテーブル
employees
id | name |
---|---|
1 | 一郎 |
2 | 次郎 |
3 | 三郎 |
salaries
employee_id | price |
---|---|
1 | 1000 |
2 | 2000 |
3 | 3000 |
給与の高い順にemployeeを取得する
$employees = Employee::select(employees.*)
->join('salaries', 'employees.id', '=', 'salaries.employee_id')
->orderBy('salaries.price', 'desc')
->get();
コメントを書く