我是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');
答案 0 :(得分:4)
你几乎是正确的 - 只是一个小故障:
echo $this->Form->input('department_id');
您需要将字段命名为数据库中的字段。
如果是BelongsTo关系,那么员工表中应该有一个department_id
外键。
PS:蛋糕知道,如果你传递$ departments,那么这个数组需要成为这个表单字段的选项。所以不需要额外的配置!
// in your add action at the very bottom
$departments = $this->Employee->Department->find('list');
$this->set(compact('departments'));