entchucs
(Maurojulio)
June 14, 2013, 2:05pm
1
Opa,
Eu tenho o seguinte código:
$dataProvider = new Produtos(‘search’);
$dataProvider = $dataProvider->search();
$dataProvider->getPagination()->setPageSize(2);
$dataProvider->sort->defaultOrder = ‘rand()’;
Só que ao invés de getPagination()->setPageSize eu queria fazer um "limit".
Pesquisei por tudo e não achei
gugoan
(Gugoan)
June 14, 2013, 5:15pm
2
Opa,
Eu tenho o seguinte código:
$dataProvider = new Produtos(‘search’);
$dataProvider = $dataProvider->search();
$dataProvider->getPagination()->setPageSize(2);
$dataProvider->sort->defaultOrder = ‘rand()’;
Só que ao invés de getPagination()->setPageSize eu queria fazer um "limit".
Pesquisei por tudo e não achei
Limitar a quantidade total de registros retornados?
entchucs
(Maurojulio)
June 14, 2013, 5:55pm
3
Isso.
Seria algo similar a "limit 0,2"
Mas eu já tenho o dataProvider definido, queria aproveitar o mesmo mudando só o limit do criteria.
Newerton
(Newerton Araujo)
June 15, 2013, 2:20pm
4
Mauro,
Se estiver usando a função search padrão do Yii, tenta usar assim:
$model = new Produtos();
$dataProvider = $model->search();
$dataProvider->getPagination()->setPageSize(2);
$dataProvider->sort->defaultOrder = 'rand()';
Tenta usar também
$dataProvider->limit = 2;
O problema de usar esse limit, é que ele só vai retornar 2 item na listagem, correto é definir a quantidade por página mesmo, do jeito que está fazendo.
Tem uma extensão que ajuda a criar quantidade de items por paginas no <select>
http://www.yiiframework.com/extension/pagesize/
Veja a estrutura interna.
gugoan
(Gugoan)
June 16, 2013, 9:33pm
5
Recentemente usei essa extensão Pagesize, funciona bacana!
Aqui ajuda bastante: www.youtube.com/watch?v=LQIhyKWhPIQ
entchucs
(Maurojulio)
June 17, 2013, 12:58pm
6
Newerton:
O setPageSize gera paginação, não é o caso
Já o limit gerou o erro:
A propriedade "CActiveDataProvider.limit" não está definida.
Gildo
(MasterG)
July 30, 2013, 8:59am
7
Boas,
Para aplicar limite, podem usar a classe CDbCriteria. Exemplo:
$produtos = new Produtos('search');
$criteria=new CDbCriteria;
$criteria->limit = 2;// limitar a dois registos
//$criteria->offset = 0;
//$criteria->compare('nomeColuna', 'valor');
$dataProvider = new CActiveDataProvider($produtos, array(
'criteria'=>$criteria,
));
Cumps.