Bonjour à tous,
Je viens vous exposer un problème qui me casse la tête depuis un petit moment, sûrement dû à mon côté débutant sur CakePHP.
Mon problème:
J'ai une structure de base de données qui ressemble à ça pour le moment :
J'ai créé mes modèles et mes controllers. J'utilise le système Auth pour authentifier mon user. Jusque là, tout va bien !
J'arrive a récupérer mon user en utilisant AuthComponent::user(), et j'arrive aussi a avoir ses habilitations en jouant sur recursive :
$this->Auth->authenticate = array(
'Form' => array(
'userModel' => 'User',
'recursive' => 1
)
);
J'ai une autre relation dans mon modèle Habilitation avec le modèle Module (HABTM à travers la table habilitation_modules).
public $hasAndBelongsToMany = array(
'User' =>
array(
'className' => 'User',
'joinTable' => 'habilitations_users',
'foreignKey' => 'habilitation_id',
'associationForeignKey' => 'user_id'
),
'Module' =>
array(
'className' => 'Module',
'joinTable' => 'habilitations_modules',
'foreignKey' => 'habilitation_id',
'associationForeignKey' => 'module_id'
)
);
Et c'est là mon hic !!
Je souhaite pouvoir retrouver dans mon objet Habilitation, la liste des Modules accessibles grâce à l'habilitation en question...
MAIS, je ne sais pas où et comment faire ce chargement. Je pensais pouvoir faire un truc du genre (dans le controller Habilitation) $this->Habilitation->Module->find('all / ou un autre truc qui permet d'utiliser mon HABTM entre module et habilitation');
Qu'en pensez-vous? Où puis-je retrouver mes modules accessibles?
Je vous remercie à l'avance de votre aide.
Joned.
Je viens de trouver la solution à mon problème après une discution avec un ami dév et quelques recherches supplémentaires...
J'utilise donc CONTAINABLE pour descendre dans mes liens entre mes modèles.
Au passage, merci à Grafikart pour tout son travail !