1

複数のテーブルがあります。

  • コンテスト
  • エントリー
  • ユーザー

ユーザーはコンテストにエントリを送信できます。ユーザーはコンテストに複数のエントリを送信できます。

特定のコンテストにエントリを送信したユーザーの電子メールを知る必要があります。メールは user テーブルにあります。

コンテストからすべてのエントリを取得することはそれほど難しくありません。私は次の方法でこれを達成します。

$entries = Contest::find(1)->entries()->first();

これで、ID が 1 のコンテストに属するすべてのエントリが作成されました (使用など)。では、効率的な方法で users テーブルからすべてのユーザーの電子メールを取得するにはどうすればよいでしょうか?

リンクされている 3 つのテーブルで、コンテスト ID から始めて、そのコンテストからすべてのエントリを取得し、まだ取得できていないすべてのユーザー メールを取得する必要があります。

うまくいけば、これは理にかなっています。そうでない場合は、聞いてください!

4

2 に答える 2

1
$getUser = Contest::find(1)->users()->get();
$getEmails = $getUser->email;

foreach($getEmails as $getEmail)
    echo $getEmail;

emailsID 1に対応するすべてのユーザーを取得しますcontest。ただし、これを機能させるには、最初にデータベース関係を実行する必要がありますmodel

于 2013-06-23T21:59:24.403 に答える