Filtern von Pivot-Tabellendaten mit Laravel-Modellen
Angenommen, 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-Modelle:
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');
}
}
Ich möchte eine Liste aller Benutzer erhalten, jedoch nur mit den primären Rollen im zurückgegebenen Objekt. Wenn ich etwas verwende wie:
$users = User::with('roles')->find(1);
Jedes Benutzerobjekt verfügt über eine Liste aller ihm entsprechenden Rollen. Ich möchte, dass diese Liste nur die primären Rollen enthält. Gibt es eine Möglichkeit, dies aus einer Abfrage heraus zu tun, ohne das $ users-Array nachzubearbeiten?