Získání jednoho uživatele společně se všemi jeho rolemi

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
fary
Člen | 155
+
0
-

Mám 2 tabulky: user a user_role.

user ( id, username )

user_role ( user_id, role )  user_id je cizí klíč na user.id

Každý uživatel může mít potencionálně více než jednu roli. Rád bych získal jednoho uživatele společně se všemi jeho rolemi jedním dotazem. Zkoušel jsem:

$db
	->table('user')
	->where('id = ?', $id)
	->where(':user_role.user_id = ?', $id)
	->select('*');

To mi ovšem vrátí jenom jeden ActiveRow pouze s jednou uživatelovou rolí (ovšem testovací uživatel má role 2). Existuje v NDB nějaký způsob, jak pomocí jednoho dotazu získat jednoho iživatele společně se všemi jeho rolemi? Jak by se takový dotaz dal zapsat?

qwerin
Člen | 25
+
0
-

z hlavy:

$user=$db
    ->table('user')
    ->get($id);
$roles=$user->related('user_role');
forech ($roles as $role){
echo $user->username." - ".$role->role;
}

Editoval qwerin (13. 6. 2014 22:04)