dataProvider não lista todos registros

Buenas,

Estou criando uma busca e o dataProvider não está mostrando todos registros (embora o $dataProvider->totalItemCount retorne o valor correto).

Percebi que ocorre quando implemento o relacionamento ‘anunciosModeloses’ e ‘anunciosMarcas’, então vou postar estes trechos de código:

public function relations() {

return array(


	'idCategoria' => array(self::BELONGS_TO, 'AnunciosCategorias', 'IdCategoria', 'joinType'=>'LEFT JOIN'),


	'anunciosAnos' => array(self::HAS_MANY, 'AnunciosAnos', 'IdAnuncio', 'joinType'=>'LEFT JOIN'),


	'anunciosModeloses'=>array(self::MANY_MANY, 'veiculosModelo', 'anuncios_modelos(IdAnuncio, IdModelo)', 'joinType'=>'LEFT JOIN'),


	'anunciosMarcas' => array(self::HAS_MANY, 'veiculosMarca', array('IdMarca'=>'Id'), 'through'=>'anunciosModeloses'),


	);

}

$criteria->with= array(‘idCategoria’,‘anunciosAnos’,‘anunciosModeloses’);

$criteria->together = true;

$criteria->compare(‘idCategoria.IdSecao’, $this->q_secao);

$criteria->addBetweenCondition(‘anunciosAnos.Ano’, $this->q_ano_de, $this->q_ano_ate);

$criteria->compare(‘anunciosModeloses.Id’, $this->q_modelo);

$criteria->compare(‘anunciosMarcas.Marca’, $this->q_marca, true);

Olá Mauro.

Recentemente fiz uma página para emitir relatórios e utilizei o método search() para pesquisar os dados. O meu método estava idêntico ao seu ($criteria->with), e com o msm problema: total de itens correto, mas os registros apresentados não batia com o total.

Resolvi da seguinte forma: comentei a linha com o "$criteria->with" e fiz a junção manual. Ex:




//criei uma condição antes de fazer a junção e a condição

$criteria->join = 'LEFT OUTER JOIN Tabela t2 ON t2.fkcampo = t.id ';

$criteria->addCondition('condicao...');



Não sei o porque do "$criteria->with" causar isso, pois msm configurando a pageSize no dataProvider com todos os itens, o total fica limitado na hora de mostrar.

Até mais!

Funcionou!

Valeu!