Filtern von pivot-Tabellen Daten mit Laravel models
Sagen wir, ich habe drei Tabellen (dies ist nur ein Beispiel):
users
user_id
username
roles
role_id
name
user_roles
user_id
role_id
primary (boolean)
Und die entsprechenden laravel models:
class User extends Eloquent {
public function roles() {
return $this->belongsToMany('Role')->withPivot('primary');
}
}
class Role extends Eloquent {
public function users() {
return $this->belongsToMany('User')->withPivot('primary');
}
}
Möchte ich, um eine Liste aller Benutzer, sondern nur die primären Rollen, die im zurückgegebenen Objekt.
Wenn ich so etwas wie:
$users = User::with('roles')->find(1);
Jedes Benutzer-Objekt wird eine Liste aller Rollen, die entsprechend es. Ich möchte diese Liste enthält nur die primären Rollen. Gibt es eine Möglichkeit, diese aus einer Abfrage, ohne Nachbearbeitung das $user-array?
- Sind Sie versuchen, die Abfrage zu einem Benutzer Rollen oder mehrere Benutzer-Rollen?
- Duplikat von: stackoverflow.com/questions/18538527/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie Folgendes:
Ich würde vorschlagen, Sie erstellen eine zusätzliche Methode in Ihrem Benutzer-Modell wie folgt:
Dann so etwas wie:
Auch, der "Eager Load-Constraints" Abschnitt in die Dokumentation relevant sein könnte.