bindModel im Controller

Kategorie: CakePHP
Publikationsdatum: 22.06.2011
Standardmäßig werden alle Beziehungen über die Modelle definiert. Möchte man im Rückgabe-Array nicht alle miteinbezogene Ebenen erhalten, verkürzt man das Array mit diversen Methoden.

Ein Beispiel: Es gibt die Tabellen jobs, applicants und job_applications. Man sucht nun alle Datensätze in der Tabelle job_applications, welche einem bestimmten Job zugeordnet sind.
Durch die Verkürzung im Modell, werden aber nur die Daten von der Tabelle job_applications ausgegeben. Man möchte trotzdem noch die Daten des zugehörigen Datensatzes aus der Tabelle applicants ausgeben.
Um ein vorher ausgeschlossenes Modell wieder hinzufügen, verwendet man die Funktion bindModel.
PHP
  1. $this->loadModel('JobApplication');
  2. $this->JobApplication->bindModel(array('hasOne'=>array('Applicant'=>array('className'=>'Applicant'),
  3. 'foreignKey' => false,
  4. 'conditions' => '`Applicant`.`id` = `JobApplication`.`fk_applicant_id`'
  5. )
  6. )
  7. );
  8. $results = $this->JobApplication->find('all', array('conditions'=>array('fk_job_id' => '1')));
Stichwörter: CakePHP, bindModel, Controller
 
 
NACH OBEN