不知道这是不是一个Bug?

$criteria = new CDbCriteria();

$criteria->with = array(‘role’=>array(‘condition’=>‘roleId=:roleId’, ‘params’=>array(’:roleId’=>5)));

$criteria->limit=5;

$criteria->offset=0;

$dataProvider = new CActiveDataProvider(‘ContentData’);

$dataProvider->setCriteria($criteria);

$rows = $dataProvider->getData();

现在的问题是只要加上

$criteria->limit=5;

$criteria->offset=0;

这两句的其中一句,结果就会出错.

不符合条件的数据也会被查询出来.

有没有人帮忙指点一下?

$criteria = new CDbCriteria();

$criteria->with = array(‘role’=>array(‘condition’=>‘roleId=:roleId’, ‘params’=>array(’:roleId’=>5)));

$criteria->limit=5;

$criteria->offset=0;

$rows = ContentData::model()->findAll($criteria);

这样查询也会出错.

好像是没有关联上…

‘condition’=>‘roleId=:roleId’

没有起作用.

$criteria = new CDbCriteria();

$criteria->join = ‘inner join ContentDataRole on t.id = dataId’;

$criteria->condition = ‘ContentDataRole.roleId = 5’;

$criteria->limit=5;

$criteria->offset=0;

解决了.这样才能关联上.