2012-04-10 65 views
1

我是初學者的CakePHP。CakePHP的表單助手創建選擇框

我的員工型號,

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

現在員工add.ctp我想創建一個選擇框,其中列出所有部門。 我會通過官方CakePHP的2.1文件(here) 它告訴我在我的控制器添加

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

..

我不知道把其中控制器?它是在EmployeesController還是DepartmentsController?並在控制器的行動?

視圖中創建選擇框(在add.ctp)

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

回答

4

你幾乎正確的 - 只是一個小故障:

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

你需要爲他們在命名字段數據庫。 ,如果它是一個屬於關聯關係比應該在你的員工表中的department_id外鍵。

PS:蛋糕都知道,如果你傳下去$部門,此數組將需要此表單域的選項。所以不需要額外的配置!

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