回答編集履歴

4

追記

2019/04/28 07:50

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -3,6 +3,10 @@
3
3
 
4
4
 
5
5
  リレーションを定義してデフォルトの Eager Loading 対象に指定すれば解決しますね。Laravel の設計思想を無視して JOIN するのはやや筋が悪いと思います。Eager Loading の場合2クエリになってしまいますが,件数を制限して取得するぶんには JOIN を使って1クエリにする場合に対してパフォーマンス面での欠点はありませんし,結果がごちゃまぜにならずにテーブルごとに分かれた状態で取得できるのはアーキテクチャ的に大きな利点です。
6
+
7
+
8
+
9
+ (そもそも Laravel のリレーションは多対多以外は JOIN を使用しませんが,そこの理解からあってますか…?)
6
10
 
7
11
 
8
12
 

3

追記

2019/04/28 07:50

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- リレーションを定義してデフォルトの Eager Loading 対象に指定すれば解決しますね。Laravel の設計思想を無視して JOIN するのはやや筋が悪いと思います。
5
+ リレーションを定義してデフォルトの Eager Loading 対象に指定すれば解決しますね。Laravel の設計思想を無視して JOIN するのはやや筋が悪いと思います。Eager Loading の場合2クエリになってしまいますが,件数を制限して取得するぶんには JOIN を使って1クエリにする場合に対してパフォーマンス面での欠点はありませんし,結果がごちゃまぜにならずにテーブルごとに分かれた状態で取得できるのはアーキテクチャ的に大きな利点です。
6
6
 
7
7
 
8
8
 

2

リンク

2019/04/28 07:44

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -5,6 +5,8 @@
5
5
  リレーションを定義してデフォルトの Eager Loading 対象に指定すれば解決しますね。Laravel の設計思想を無視して JOIN するのはやや筋が悪いと思います。
6
6
 
7
7
 
8
+
9
+ - [Eloquent:リレーション 5.8 Laravel](https://readouble.com/laravel/5.8/ja/eloquent-relationships.html)
8
10
 
9
11
  - [【Laravel】 第1回 Eloquent ソースコードリーディング - モデルの取得 - Qiita](https://qiita.com/mpyw/items/7c7e8dc665584122a275)
10
12
 

1

追記

2019/04/28 07:42

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -60,4 +60,4 @@
60
60
 
61
61
 
62
62
 
63
- あと `accounts_id` は命名規約を無視しているので単数形の `account_id` に揃えるべきですね。
63
+ あと `accounts_id` は命名規約を無視しているので単数形の `account_id` に揃えるべきですね。(`account_id` ならばリレーション定義時の第2引数も省略できます)