Serios Bug with CActiveDataProvider

Olá estou com um problema com o CActiveDataProvider no momento em que ele deveria realizar uma pesquisa, onde ele praticamente ignora as condições de pesquisa e passa a trazer todos os registros sem exceção.

É um codigo básico, no entando, pelos critérios de pesquisa, o resultado não está sendo mostrado.




$dataProvider=new CActiveDataProvider('destaque', array(

                'criteria'=>array(

                'with'=>array('pages'=>array(

                                'condition' => 'pages.ID = :IDPage',

                                'params' => array(':IDPage' =>$this->IDPage), //array

                               )),

                ),

            ));



Verifiquei o query gerada:




SELECT `t`.`ID` AS `t0_c0` , `pages`.`ID` AS `t1_c0` , `pages`.`Name` AS `t1_c1` , `pages`.`TitlePage` AS `t1_c2` , `pages`.`MetaDescription` AS `t1_c3` , `pages`.`MetaKeywords` AS `t1_c4` , `pages`.`Titulo` AS `t1_c5` , `pages`.`Text` AS `t1_c6` , `pages`.`URL` AS `t1_c7` , `pages`.`ID_URL` AS `t1_c8` , `pages`.`DataCriacao` AS `t1_c9` , `pages`.`DataAlteracao` AS `t1_c10` , `pages`.`IDUsuario` AS `t1_c11`

FROM `destaque` `t`

LEFT OUTER JOIN `destaquepagina` `pages_pages` ON ( `t`.`ID` = `pages_pages`.`IDDestaque` )

LEFT OUTER JOIN `page` `pages` ON ( `pages`.`ID` = `pages_pages`.`IDPage` )

WHERE (

`t`.`ID`

IN ( 1, 2, 3 )

)

AND (

pages.ID =1

)



Está tudo ok com a query, quando a testo no mysql, o resultado é capturado corretamento, no entando na aplicação isto não ocorre.

Verifiquei a codificação e verifiquei que um possível problema que possa estar ocorrendo é devido a linha 165 da classe CPagination que mostra:




$criteria->offset=$this->currentPage*$this->pageSize;



Quando o offset é zero ele parece ignorar as condições de pesquisa.

Obrigado, Se isto for mesmo um erro, espero ter ajudado para melhorar a aplicação, tbm espero alguma forma de contornar este problema.

Tente setar a variável together para true dentro do Criteria




$dataProvider=new CActiveDataProvider('destaque', array(

                'criteria'=>array(

                'with'=>array('pages'=>array(

                                'condition' => 'pages.ID = :IDPage',

                                'params' => array(':IDPage' =>$this->IDPage), //array

                                'together' => true

                               )),

                ),

            ));