2010-08-28 8 views
2

Je suis nouveau à CakePHP et je suis en train de comprendre comment créer la relation suivante:Comment configurer une relation dans cakephp pour une relation récursive one-to-one?

alt text

Le employees.manager_id pointera vers le employees.id de leur gestionnaire. Donc, en d'autres termes, l'employé Jason aura un directeur de Jill. Jason est employee.id 1 avec employees.manager_id 2. Jill est employees.id 2 et employees.manager_id est nul.

Comment configurer le contrôleur de modèle de manière à ce que, lors de l'indexation, de l'ajout, de la modification, etc., le gestionnaire_id soit consulté à partir de la même table. Par exemple, lors de l'indexation, je voudrais voir que « Jill » est le gestionnaire de jason plutôt que le numéro 2 ...

Répondre

2

vous pouvez définir l'association suivante:

class Employee extrnds AppModel { 
var $belongsTo = array(
      'Parent' => array('className' => 'Employee', 
           'foreignKey' => 'manager_id', 
           'conditions' => '', 
           'fields' => '', 
           'order' => '' 
      ) 
    ); 
} 

Ensuite, vous pouvez y accéder par:

$this->Employee->Parent->find('list'); 
+0

Merci beaucoup. Pouvez-vous me dire alors dans l'index.ctp (voir), que devrais-je utiliser pour l'appeler? J'utilise actuellement quelque chose comme ceci: Que dois-je utiliser maintenant pour afficher le nom du responsable? –

+1

Je pense que je vois maintenant. J'utiliserais quelque chose comme ceci: Merci beaucoup pour votre temps et redonner de l'aide à quelqu'un qui vient d'apprendre !! –

+1

Je pense que cela devrait être , ne devrait-il pas? – sipiatti

Questions connexes