2012-04-10 9 views
1

Ich bin CakePHP Anfänger.CakePHP FormHelper Erstelle Auswahlbox

Mein Mitarbeiter Model,

  class Employee extends AppModel { 
      var $belongsTo = array(
       'Department'=>array(
       'className'=>'Department', 
       'foreignKey'=>'department_id', 
       'conditions'=>null, 
       'fields'=>null 
       ) 
     ); 
      blah-- 

jetzt in Mitarbeiter add.ctp Ich möchte eine Auswahlbox erstellen, die alle die Abteilung auflisten. i wurde offizielle CakePHP 2.1 Dokumentation (here) durchlaufen sagt es mir

$this->set('departments', $this->Employee->Department->find('list')); 

in meinem Controller hinzuzufügen ..

ich habe keine Ahnung, in dem Controller zu setzen? ist es in EmployeesController oder DepartmentsController? und in welcher Aktion des Controllers?

echo $this->Form->input('department_id'); 

Sie die Felder nennen müssen, wie sie in der sind: nur eine kleine Panne -

Ansicht Auswahlfeld (in add.ctp)

  echo $this->Form->input('Department'); 

Antwort

4

Sie waren fast richtig zu erstellen Datenbank. und wenn es sich um eine BelongsTo-Beziehung handelt, sollte in Ihrer Tabelle für Mitarbeiter ein department_id Fremdschlüssel vorhanden sein.

PS: Kuchen weiß, dass, wenn Sie $ Abteilungen übergeben, dass dieses Array die Optionen für dieses Formularfeld sein muss. also keine zusätzliche Konfiguration notwendig!

// in your add action at the very bottom 
$departments = $this->Employee->Department->find('list'); 
$this->set(compact('departments'));