初心者が書いた記事ですので、ご容赦ください。
結論
一度、普通に取得して、collectionのsortBy()を使用すればできます。
前提
いい例が思いつきませんが。hasOneとbelongToの関係のものがあるとします。
仮に boyfrindsテーブル
と girlfrindsテーブル
とします。
それぞれ nameカラム
を持っております。
model側でリレーションシップは設定してあるとします。
実現したいこと
boyfrinds
を girlfrinds.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();