2011-12-23 2 views
1

Я что-то вроде этогоYii масштабы и отношение вопрос

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

, но он говорит Неизвестному колонок «user.department.name» Я знаю, почему он так говорит, но как я могу осуществить это

I «в соотношения

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'), 

Короче я хочу найти общее число пользователей по каждой категории, который принадлежит отделу науке

ответ

0

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

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

* Я использовал «категорию», предполагая, как от имени атрибут, который содержит ключ foreing для таблицы категорий в таблице User. Конечно, вы должны изменить его на правильное имя атрибута.

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

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

+0

Нет, это говорит Неизвестная колонка «имя». Примечание: это имя является полем таблицы – iThink

+0

, что означает отношение totalCount? –

+0

Возможно, вы разместили строку "=> array ('condition' => 'name = Science')" в неправильном месте. $ model = SpecialCategory :: model() -> with (array ( 'User.Department' '=> array (' condition '=>' name = Science '), ' totalCount ', ))) -> найти все(); Это имеет смысл, но я не уверен, что это то, что вы пытаетесь сделать. –

Смежные вопросы