Laravel7 多対多の中間テーブルでソートしたい場合

■テーブル構成

articles
・id

article_areas(中間テーブル)
・id
・article_id
・area_id

areas
・id

上記のようなテーブル構成で、article_areasのidで昇順にソートしたい場合、withPivot()を使用してorderBy()をするような記事をネットで見かけるけど、単純に中間テーブルでソートしたいだけなら、通常のソートと同じようにorderBy(“中間テーブル.カラム名”, “ASC or DESC”)

orderBy('article_areas.id', "ASC")

で問題ない。

中間テーブルのカラムを抽出したい場合に、withPivot()を使用すれば良い。

ちなみに、selectした中間テーブルのカラムは、以下のようにして取得できる。

$model->pivot->withPivotした中間テーブルのカラム名

$model->pivot->id

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です