2017-08-07 3 views
0

J'ai une question sur les modèles ORM à Kohana. Im construire un système de gestion des utilisateurs basé sur 2 piliers. Dans un premier temps, les rôles ... chaque utilisateur a des rôles différents. 2ème les droits ... chaque rôle consiste en différents droits.Kohana ORM Modèle de l'utilisateur et des droits

Les utilisateurs et les rôles fonctionnent bien comme ceci:

class Model_Auth_User extends ORM { 

protected $_has_many = array(
    'roles'  => array('model' => 'Role', 'through' => 'roles_users'), 
);...} 


class Model_Auth_Role extends ORM { 

protected $_has_many = array(
    'users' => array('model' => 'User','through' => 'roles_users'), 
);...} 

je voulais maintenant ajouter quelques rigths aux rôles comme celui-ci:

class Model_Auth_Role extends ORM { 

protected $_has_many = array(
    'users' => array('model' => 'User','through' => 'roles_users'), 
    'rights' => array('model' => 'Right','through' => 'role_rights'), 
); 

et le modèle des droits:

class Model_Auth_Right extends ORM { 

protected $_has_many = array(
    'roles' => array('model' => 'Role','through' => 'role_rights'), 
); 

Si je veux accéder aux rôles, je peux simplement utiliser ceci:

$roles = $user->roles->find_all(); //works fine 

Maintenant, je veux obtenir tous les droits de cet utilisateur/rôles: quand j'essaie ceci:

$rights = $user->roles->rights->find_all(); 

je reçois toujours un résultat vide. Une idée de ce qui ne va pas ici? :)

Merci à l'avance

Répondre

1

Because $ user-> i rôles collection

<?php 
$rights = []; 
foreach($user->roles->find_all() as $role){ 
$rights[] = $role->rights->find_all(); 
} 
+0

Ahh .. merci beaucoup! – toffler