Quantcast
Channel: laravel5.8タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 87

laravel eloquent withでソートしたい時

$
0
0

初心者が書いた記事ですので、ご容赦ください。

結論

一度、普通に取得して、collectionのsortBy()を使用すればできます。

前提

いい例が思いつきませんが。hasOneとbelongToの関係のものがあるとします。
仮に boyfrindsテーブルgirlfrindsテーブル とします。
それぞれ nameカラム を持っております。

model側でリレーションシップは設定してあるとします。

実現したいこと

boyfrindsgirlfrinds.name でソートして取得したい

始めにやったこと(上手くいきませんでした)

$boyfrinds = Boyfrind::where('boyfrind_id', $boyfrind_id)
    ->with('girlfrind')
    ->orderBy('girlfrind.name', 'asc')
    ->get();

解決しました

$boyfrinds = Boyfrind::where('boyfrind_id', $boyfrind_id)
    ->with('girlfrind')
    ->get();

$boyfrinds = $boyfrinds->sortBy('girlfrind.name')->values();

参考
https://laravel.com/docs/6.0/collections#method-sortby


Viewing all articles
Browse latest Browse all 87

Trending Articles