У меня есть модель под названием Members, другая называется Awards, а другая называется Events.Laravel Many to Many Relationship 5 tables
Каждый член может иметь несколько наград более одного раза, и каждая награда может быть назначена нескольким членам, они могут быть присуждены в профиле участников или в результате события.
Моя модель член отношения:
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 извините, есть несколько способов дать награду участнику, либо непосредственно по их профилю, либо из какого-либо события. Если вознаграждение дается непосредственно в их профиле, то идентификатор события не сохраняется, но когда при назначении вознаграждения на следующем событии будет сохранен идентификатор этого события. То, что я пытаюсь сделать, - просмотреть все награды в профиле участников в цикле foreach, если одна из наград была связана с событием, тогда отобразите имя события –