我想显示学生姓名列表的下拉列表及其值student_user_id
。但问题是学生名称存储在一个不同的模型中,这个模型难以在find('list')
中对齐,这是Cakephp的查找功能。
我有一些已加入表的模型项目代码。当我对getStudentList
进行编码时,它不知道User.user_display_user
字段。
public $belongsTo = array(
'User' => array(
'className' => 'User',
'foreignKey' => false,
'conditions' => array('User.user_id = Project.student_user_id')
)
);
function getStudentList()
{
$entry = $this->find('list',array('fields' => array('Project.student_user_id','User.user_display_name')));
return $entry;
}
那么:如何我可以处理这个问题?
答案 0 :(得分:2)
您应该使用可包含的行为并告诉CakePHP在这种情况下您想要加入这两个表:
$entry = $this->find('list', array(
'fields' => array('Project.student_user_id', 'User.user_display_name'),
'contain' => array('User')
));
默认情况下,在特殊要求之前不应进行连接 - 出于性能原因。
请参阅http://book.cakephp.org/2.0/en/core-libraries/behaviors/containable.html
注意: $ recursive = 0也可以使用但不鼓励使用。