如何使用cakephp查找列表从不同的模型中检索两个不同的字段?

时间:2014-03-09 11:12:54

标签: cakephp

我想显示学生姓名列表的下拉列表及其值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;
        }

那么:如何我可以处理这个问题?

1 个答案:

答案 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也可以使用但不鼓励使用。

相关问题