Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Отношение through и условие из текущей модели в yii
Форумы портала PHP.SU » » CMS и фреймворки » Отношение through и условие из текущей модели в yii

Страниц (1): [1]
 

1. quinlena - 03 Октября, 2013 - 13:15:38 - перейти к сообщению
День добрый! Есть 3 таблицы:
1-я: a_id, a_number, game_id.
2-я: b_id, game_id, punch_id, b_cnum1, b_cnum2
3-я: c_id, c_name

1-я таблица используется в текущей модели. Нужно получить c_name из третьей таблицы, учитывая что c_id=punch_id, game_id = game_id, a_number должно попадать в диапазон от b_cnum1 до b_cnum2 и при этом проверить его на четность и проверить b_cnum1 на четность. Запрос знаю как сформировать, но связями построить что-то не выходит. Запрос вот такой:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT a .`game_id`,a.`number` , c.`c_name` ,b.`b_cnum1`,b .`b_cnum2`
  3. FROM  a
  4. LEFT JOIN b ON ( a.game_id = b.game_id )
  5. LEFT JOIN c ON ( b.punch_id = c.c_id )
  6. WHERE b.b_cnum1 %2 =  a.a_number %2
  7. AND   a.a_number <b_cnum2
  8. AND   a.a_number > b_cnum1
  9.  


Связь пробовала сделать так, но не получается...
PHP:
скопировать код в буфер обмена
  1.  
  2.    'b_tab'=>array(self::HAS_MANY,'b','game_id'),
  3.             'c_tab'=>array(self::HAS_MANY,'c',array('punch_id'=>'c_id'),
  4.             'through'=>'b_tab',
  5.             'condition'=>'b.b_cnum1 %2 =  a.a_number %2
  6. AND   a.a_number <b_cnum2
  7. AND   a.a_number > b_cnum1'),
  8.  
  9.  


Подскажите, как надо?

 

Powered by ExBB FM 1.0 RC1