ホームページ  >  に質問  >  本文

Laravel Joinを最適化して、テーブルを複製せずに単一行のすべてのデータを取得します

PHP と Laravel を使用する 4 つの MySQL テーブルがあります 7

    ###メンバー###
  1. 控除
  2. ###支払い###
  3. 支払い控除
  4. 次に、各メンバーの 1 回の支払いとその他すべての控除を継続的に表示したいと思います。 (
  5. 1 人の支払いが 1 回だけであると仮定します
  6. )

データベース構造は次のとおりです これは表示したいHTMLテーブルです

これは私が使用しているクエリですが、データが重複しています。

リーリー

結果の配列は、その導出に基づいて各メンバーを繰り返します。

このデータをより適切に取得する方法はありますか?各メンバーの控除のネストされた配列のようなものですか?

これがモデルです

######メンバー###### リーリー ######支払い###### リーリー

控除

リーリー

P粉410239819P粉410239819251日前414

全員に返信(1)返信します

  • P粉239089443

    P粉2390894432024-01-17 09:20:05

    モデルの構築はほぼほぼ正しい方向に進んでいます。不足しているのは、別のクエリを作成せずにリレーションシップをロードする方法です。コントローラーを見ると、メソッド内にリレーションシップをロードするための基準が表示されます。これがあなたの懸念を解決するためのより良いコンセプトであることを願っています。

    参考: https://laravel.com/docs/9.x/eloquent-relationships#lazy-eager-loading

    これを行うと、将来の N 1 問題も回避できます。ORM (オブジェクト リレーショナル マッピング) の「N 1 選択問題」とは何ですか? を参照してください。 N 1< /p> の詳細

    メンバーモデル

    リーリー ######支払いモード###### リーリー

    控除モデル

    リーリー

    メンバーコントローラー:

    リーリー

    返事
    0
  • キャンセル返事