2016-10-04 14 views
1

私は3つのテーブル:users, emails,attachmentsを持っています。ユーザーテーブルはuser_idによって電子メールで接続されています。メールテーブルはemail_idで添付ファイルと接続します。Laravelは3つのテーブルから関連データを取得します

私の質問は:どのように私はすべてのユーザーに自分の電子メールと添付ファイルを取得laravelで雄弁に見えるようにする必要がありますか? (私はすべてのユーザーと彼らの電子メールを取得する方法を知っているが、私は添付ファイルを追加する方法がわからない)

答えて

2

データベースの関係に応じて、例えば、あなたのEmailモデルに関係する方法を宣言してもよい:

// One to One (If Email has only one attachment) 
public function attachment() 
{ 
    return $this->hasOne(Attachment::class); 
} 

は、そうでない場合:IDを使用してユーザーを読み込むとき

// One to Many (If Email contains more than one attachment) 
public function attachments() 
{ 
    return $this->hasMany(Attachment::class); 
} 

Emailモデルから関連添付ファイル(複数可)を取得するには、このような何かを試すことがあります。

モデルのEmailモデルで、メソッド名emailを使用して既に関係メソッドを宣言していただきたいと考えています。

注:モデルには正しい名前空間を使用してください。すべてを正しく行い、Laravelのコンベンションに従っていればうまくいくかもしれません。またcheck the documentation

+1

ありがとうございます!すべて正常に動作します。 –

+0

こんにちは、もう一つ質問があります。ユーザーと添付ファイル(電子メールなし)(ユーザーは電子メールに接続されており、電子メールは添付ファイルに接続されています)を取得するにはどうすればよいですか?今私はテーブルアタッチメント(user_id)のための別のキーを追加しましたが、私はこの追加キーなしでデータを取得するオプションがあると思います。 –

+0

この場合、あなたは 'Email'モデルで作成したのと同じ方法で、' Model'で 'atachments'関係メソッドを作成することができます。 –

関連する問題