ошибка генерации запроса в CActiveDataProvider
Добавлено: 2015.05.18, 13:23
имею модели
в контроллере
при этом в дебаге виден запрос
то есть условие (grl_id is not null) попало не в WHERE , а в ON
Код: Выделить всё
class Obj extends CActiveRecord
{
public function relations()
{
return array(
'girls' =>array(self::HAS_MANY, 'Girls', 'grl_oid'),
);
}
public function scopes()
{
return array(
'active'=>array(
'condition'=>'ob_status=2',
),
}
}
class Girls extends CActiveRecord
{
public function relations()
{
return array(
'obj' => array(self::BELONGS_TO, 'Obj', 'grl_oid'),
);
}
public function scopes()
{
return array(
'active'=>array(
'condition'=>'grl_status=2',
),
'hasGirls'=>array(
'condition'=>'grl_id is not null',
),
);
}
}
Код: Выделить всё
$criteria = new CDbCriteria();
$criteria->scopes =array('active');
$criteria->with =array('girls:hasGirls');
$criteria->together = true;
$dataProvider= new CActiveDataProvider('Obj',array(
'criteria'=>$criteria
));
при этом в дебаге виден запрос
Код: Выделить всё
SELECT `t`.`ob_id` AS `t0_c0`,
`t`.`ob_status` AS `t0_c1`, `girls`.`grl_id` AS `t1_c0`,... FROM `obj`
`t` LEFT OUTER JOIN `girls` `girls` ON (`girls`.`grl_oid`=`t`.`ob_id`) AND
(grl_id is not null) WHERE (ob_status=2) LIMIT 10