Yii Framework Forum: Set Limit No $Dataprovider - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Set Limit No $Dataprovider Rate Topic: -----

#1 User is offline   Mauro Julio Battassini 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 11
  • Joined: 28-August 12

Posted 14 June 2013 - 09:05 AM

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 :(
0

#2 User is offline   Gustavo Andrade 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 116
  • Joined: 16-August 11
  • Location:MG

Posted 14 June 2013 - 12:15 PM

View PostMauro Julio Battassini, on 14 June 2013 - 09:05 AM, said:

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?
0

#3 User is offline   Mauro Julio Battassini 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 11
  • Joined: 28-August 12

Posted 14 June 2013 - 12:55 PM

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.
0

#4 User is offline   Newerton 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 791
  • Joined: 27-April 10
  • Location:Campo Grande/MS - Cambé/PR, Brasil

Posted 15 June 2013 - 09:20 AM

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.yiiframew...nsion/pagesize/

Veja a estrutura interna.
Newerton Vargas de Araújo
0

#5 User is offline   Gustavo Andrade 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 116
  • Joined: 16-August 11
  • Location:MG

Posted 16 June 2013 - 04:33 PM

Quote

Tem uma extensão que ajuda a criar quantidade de items por paginas no <select>
http://www.yiiframew...nsion/pagesize/



Recentemente usei essa extensão Pagesize, funciona bacana!
Aqui ajuda bastante: www.youtube.com/watch?v=LQIhyKWhPIQ
0

#6 User is offline   Mauro Julio Battassini 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 11
  • Joined: 28-August 12

Posted 17 June 2013 - 07:58 AM

Newerton:

O setPageSize gera paginação, não é o caso :(
Já o limit gerou o erro:

A propriedade "CActiveDataProvider.limit" não está definida.
0

#7 User is offline   MasterG 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 6
  • Joined: 21-November 11

Posted 30 July 2013 - 03:59 AM

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.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users