CakePHP如何通过模型关系了解用户类型

时间:2015-08-30 10:28:56

标签: database cakephp cakephp-2.0

我在CakePHP 2.6.x中有这种关系

                                | -- ProfessorUser
Project -- ProjectUser -- User  |
                                | -- StudentUser

数据库 db

项目模型

public $hasMany = array('ProjectUser');

ProjectUser模型

public $belongsTo = array('User');

结果

  

$ this->项目 - >查找('所有',数组('递归' => 2));

'ProjectUser' => array(
            (int) 0 => array(
                'id' => '1',
                'project_id' => '1',
                'user_id' => '2',
                'User' => array(
                    'id' => '2',
                    'name' => 'John',
                        ....
                )
            ),
            (int) 1 => array(
                'id' => '18',
                'project_id' => '1',
                'user_id' => '1',
                'User' => array(
                    'id' => '1',
                    'name' => 'Kate',
                        ....
                )
            )

我的问题

好的我已将用户分配到项目但是我如何知道用户是教授还是学生?

提前致谢

1 个答案:

答案 0 :(得分:1)

您必须为用户模型添加hasOne()关系:

var $hasOne = array ('ProfessorUser', 'StudentUser')

然后,检查User对象是否具有有效的ProfessorUser或StudentUser子对象(即非空数组)。

向User添加列以指示用户类型可能是值得的。现在,用户可以同时拥有ProfessorUser和StudentUser记录,这可能不是您想要的。