私は、メンバーと呼ばれるもう1つは賞と呼ばれ、別のものはイベントと呼ばれるモデルを持っています。Laravel多対多リレーションシップ5テーブル
各メンバーは複数回の賞を複数回取ることができ、各賞は複数のメンバーに割り当てることができます。メンバーのプロフィールやイベントの結果として獲得できます。
マイメンバーモデルの関係:
public function Awards()
{
return $this->belongsToMany('App\Award', 'award_members', 'member_id', 'award_id')
->withTimestamps()
->orderBy('award_members.created_at','desc');
}
マイ関係テーブル:
Schema::create('award_members', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id');
$table->integer('club_id');
$table->integer('award_id');
$table->integer('member_id');
$table->integer('event_id')->nullable();
$table->timestamps();
});
マイビュー出力:
@foreach($member->Awards as $a)
{{ $a->title }} | {{ $a->pivot->created_at }}
@endforeach
出力:
- 賞1 | 12/08/2016
- 賞2 | 12/08/2016
- 賞1 | 11/08/2016
リレーションテーブルにイベントを介してメンバープロファイルに追加されている場合は、イベント名も出力したいと思います。上記は会員に直接追加された賞の詳細のみを示しています。私の関係テーブルで
イベントからエントリはのようになり:
- ID = 4 USER_ID = 1
- club_id = 1(に関連する(ユーザテーブルに関連する)
- クラブテーブル)
- award_id = 3(賞テーブルに関連する)
- MEMBER_ID = 1(メンバー・テーブルに関連する)
- event_id = 1(イベントテーブルに関連していますが、NULLでもかまいません)
イベント名を入力したときにどのように出力できますか?
を言うでしょうが、あなたが取得したい手の込んだしてくださいだろうか? – jaysingkar
私が理解している限り、あなたはリレーションテーブルに関連するすべての詳細をイベント名で取得したいと考えています。右 ? – jaysingkar
@jaysingkar申し訳ありませんが、メンバーに自分のプロフィールやイベントから賞を与える方法はいくつかあります。自分のプロフィールに賞が直接与えられた場合、イベントIDは保存されませんが、次のイベントで賞が与えられると、そのイベントのIDが保存されます。私がしようとしているのは、賞の1つがイベントにリンクされていて、イベント名が –