1

我是 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 文档(这里)它告诉我添加

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

在我的控制器中..

我不知道放哪个控制器?它在EmployeesController 还是DepartmentsController 中?以及控制器的哪个动作?

查看以创建选择框(在 add.ctp 中)

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

1 回答 1

4

你几乎是正确的 - 只有一个小故障:

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

您需要像在数据库中一样命名字段。如果它是 BelongsTo 关系,那么您的员工表中应该有一个department_id外键。

PS:cake 知道,如果您向下传递 $departments,则该数组将需要成为该表单字段的选项。所以不需要额外的配置!

// in your add action at the very bottom
$departments = $this->Employee->Department->find('list');
$this->set(compact('departments')); 
于 2012-04-10T12:28:03.987 回答