【发布时间】:2013-02-02 12:44:02
【问题描述】:
我如何表示这个模型的关系: 我们有一个包含 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。实际上,在解释关系时没有设置任何内容。
【问题讨论】:
-
你遇到了什么错误?
-
问题是当我在项目模型中访问用户时,$this 对象中没有定义任何内容!所以 $this->u_type 也没有定义,而且 ...
标签: php mysql frameworks yii