Yii范围和关系问题

时间:2011-12-23 23:06:39

标签: php yii yii-cmodel

我有类似的东西

$model=UserCategory::model()->findAll(array('with'=>array('user.department','totalCount'=>array('condition'=>"user.department.name='Science'"))));

但它说未知列'user.department.name'我知道为什么会这样说但我将如何实现呢

我跟随关系

UserCategory
'user' => array(self::HAS_MANY, 'UserCategory', 'categoryId'),
'totalCount' => array(self::STAT, 'UserCategory', 'categoryId'),//counts total of user under each category
User
'userCat' => array(self::BELONGS_TO, 'UserCategory', 'categoryId'),
'department' => array(self::BELONGS_TO, 'Department', 'departmentId'),
Department
'userDept' => array(self::HAS_MANY, 'User', 'departmentId'),

简而言之,我想在每个类别下找到属于部门科学的用户总数

1 个答案:

答案 0 :(得分:0)

要查找属于department science的每个类别下的用户总数,'totalCount'关系的正确定义可能是这样的:

'totalCount' => array(self::STAT, 'User', 'category' /* *See note below */, 'condition'=>'user.department=Science'),

*我使用'category',假设它是包含User表中类别表的foreing键的属性的名称。当然,您应该将其更改为属性的正确名称。

现在只需$ model-> totalCount就会返回您需要的数字。

但我必须说我不能100%确定上述代码语法的正确性,但是一旦你尝试了它就可以很容易地通过一些反馈来纠正。