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

Eloquent を使用してピボット テーブルから特定の情報を含むすべてのデータを取得する

ユーザーとコースの間に多対多の関係があり、ピボット テーブル Users_Courses に isComplete 値が含まれていますが、各ユーザーをループしてユーザーのコースの場合は isComplete 値を取得し、各コースをループしてピボット データを取得します。

私が見つけたすべての例では、isComplete 値をループのあるクラスにマップしていますが、これはプログラムにとって非常に負担がかかるようで、あまり魅力的とは思えません。ここで私自身の質問をしています。この質問に対する答えが見つからない場合は、以下にリンクしてください。

また、私は Laravel-9 と MySQL を使用しています。

現在取得するデータ構造は次のとおりです:

リーリー

Eloquent でピボット値 isComplete を取得し、これまたは同様のもののように、クラス自体のデータを取得する方法を探しています。

つまり、以下の例に示すように、ピボット テーブルの値 isComplete を介してユーザーがコースを完了したかどうかを確認したいと考えています。 < /p> リーリー

私の現在のコードは次のようになります:

リーリー リーリー リーリー

コードでは isCompleted と呼ばれていますが、データベースでもそう呼ばれています。これはまだ修正されていないタイプミスです: D

P粉464208937P粉464208937428日前492

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

  • P粉244155277

    P粉2441552772023-09-08 09:33:23

    つまり、以下の例に示すように、ピボット テーブルの値 isComplete を使用して、ユーザーがコースを完了したかどうかを確認したいと考えています。

    ドキュメントのピボットテーブル列によるフィルタリングについて読みましたか: https://laravel.com/docs/9.x/eloquent-relationships#filtering-queries-via-intermediate-table-columns

    完了したコースのみが必要な場合は、リレーションシップを

    と呼びます。 リーリー

    または、モデル内の完了と未完了のカスタム関係を確立することもできます。

    リーリー

    ユーザー コントローラーでは、これらを

    と呼び出すことができます。 リーリー

    返事
    0
  • キャンセル返事