我的架构很简单 - 每个用户都有一个ID和名称。 有属于用户的作业。实际架构 -
CREATE TABLE `users` (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
`name` varchar(20)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `jobs` (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
`user_id` INT UNSIGNED ,
`type` int,
FOREIGN KEY (user_id) references users(id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
我的JobsController看起来像这样 -
<?php
class JobsController extends AppController {
public $scaffold;
public $name = 'Job';
public $belongsTo = array(
'User' => array(
'className' => 'User',
'foreignKey' => 'user_id'
)
);
}
和UsersController为 -
<?php
class UsersController extends AppController {
public $scaffold;
public $name = 'User';
public $hasMany = array(
'Job' => array(
'className' => 'Job',
'foreignKey' => 'user_id'
)
);
}
问题:
当我访问http://hostname/Jobs/add
时,我可以看到用户的下拉列表,但它是空的。
我创建的用户很少,我可以从http://hostname/Users/
为什么下拉空?我可以添加作业,但是当我查看它们时,用户字段显示为空。
答案 0 :(得分:4)
关联属于模型,而不属于控制器。
在 app / Model / User.php :
中class User extends AppModel {
public $name = 'User';
public $hasMany = array('Job');
}
在 app / Model / Job.php
中class Job extends AppModel {
public $name = 'Job';
public $belongsTo = array('User');
}