我如何表示这个模型的关系:我们有一个包含 PKey 的用户表。用户有两种类型:雇主和工人 -> 这两个表包含一个 Fkey 重新引用到用户 PKey。
我在用户模型中编写了类似的代码:
public function userTypeMapper($type)
{
switch ($type) {
case 'w':
return 'Worker';
case 'e':
return 'Employer';
case 'a':
return 'Admin';
default:
return 'Employer';
return 'Guest';
}
}
/**
* @return array relational rules.
*/
public function relations()
{
$entity = $this->userTypeMapper($this->u_type);
return array(
'entity' => array(self::HAS_ONE, $entity, 'u_id'),
'projects' => array(self::HAS_MANY, 'Project', 'pr_u_id'),
);
}
以这种方式 $entity 在雇主和工人模型之间交替!
问题是它不起作用!!!我不知道为什么当项目模型获取所有者(在用户中)时未设置 u_type。实际上,在解释关系时没有设置任何内容。