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 记录,这可能不是您想要的。
我在 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 记录,这可能不是您想要的。