Ich habe Probleme, eine Beziehung zwischen Tabellen einzurichten.Wie kann ich mehrere beredte Beziehungen bekommen?
- courses
|- id
|- title
- sessions
|- id
|- course_id
|- title
- users
|-id
|- name
- user_roles
|- user_id
|- course_id
Ich kann alle Sitzungen für einen bestimmten Kurs und alle Benutzer anzeigen, die für eine bestimmte Sitzung registriert sind. Ich möchte auch die Rolle des Benutzers zeigen. Da ich für einen beliebigen Kurs eine beliebige Anzahl von Sitzungen haben kann, verfügt meine Pivot-Tabelle nur über die Spalten course_id
und user_id
.
Wenn ich eine URL wie folgt besuchen: mysite.com/sessions/1
Ich möchte die aktuellen Benutzer für die Sitzung zeigen. Es würde wie folgt aussehen:
"My Course"
"Session One"
"John Doe"
"Admin"
"Jane Doe"
"Editor"
"Contributor"
"Name"
"Foo"
Von CodeIgniter, würde ich im Laufe ID und Benutzer-ID übergeben Sie einfach die entsprechenden Rollen zu finden. Hier ist, was ich habe, dass 90% arbeiten.
Course.php
public function sessions()
{
return $this->hasMany(Session::class);
}
Session.php
public function course()
{
return $this->belongsTo(Course::class);
}
User.php
public function user()
{
return $this->belongsTo(Course::class);
}
public function roles()
{
return $this->hasMany(Role::class);
}
Role.php
public function user()
{
return $this->belongsToMany(User::class, 'user_roles');
}