Yii сфера и проблема отношения

У меня что-то вроде этого

$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 ответ

Чтобы найти общего числа пользователей в каждой категории, которые относятся к отделу науки, правильное определение отношения "totalCount" может выглядеть примерно так:

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

* Я использовал "категорию", предполагая, что это имя атрибута, содержащего первичный ключ в таблице категорий в таблице "Пользователь". Конечно, вы должны изменить его на правильное имя атрибута.

Теперь просто $model->totalCount вернет нужное вам число.

Но я должен сказать, что не уверен на 100% в правильности синтаксиса приведенного выше кода, но его можно легко исправить с помощью обратной связи, как только вы попробуете.

Другие вопросы по тегам