CakePHP 如何通过模型关系知道用户类型

CakePHP How to know user type with model relationship

我在 CakePHP 2 中有这种关系。6.x

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

数据库

项目模型

public $hasMany = array('ProjectUser');

项目用户模型

public $belongsTo = array('User');

结果

$this->Project->Find('all', array('recursive' => 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',
                        ....
                )
            )

我的问题

好的,我已经为项目分配了用户,但是我怎么知道用户是教授还是学生?

提前致谢

您必须添加一个 hasOne() 关系到您的用户模型:

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

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

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