Yii Framework Forum: Come funziona 'limit' nel CDbCriteria? - Yii Framework Forum

Jump to content

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

Come funziona 'limit' nel CDbCriteria? Rate Topic: -----

#1 User is offline   falexio 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 13
  • Joined: 02-April 11

Posted 29 April 2011 - 12:28 PM

Ciao a tutti, ho provato a cercare sul forum anche nelle risposte in inglese ma non sono riuscito a comprendere il funzionamento del 'criteria' associato ad un CActiveDataProvider.
Questo è il mio codice:
$dpSlider=new CActiveDataProvider('Film',array(
'criteria'=>array(
'order'=>"rand()",
'limit'=>5,
),
));


Io voglio ottenere solo 5 film a caso quando nella tabella ce ne sono 100.
Io da qui mi aspetterei che il che $dpSlider->itemCount valga 5.
Invece mi restituisce 10 - come mai?
Se qualcuno sa darmi una risposta lo ringrazio da subito.


Fabio
0

#2 User is offline   dchan 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 32
  • Joined: 28-March 11
  • Location:Italy

Posted 30 April 2011 - 04:25 PM

Ciao falexio,
con l'occasione della tua richiesta mi sono informato e ti raccondo quanto sono riuscito a capire.

Il "problema" da te descritto è stato più volte segnalato (guarda questo link). Purtroppo, al momento, non verrà 'Fixato', quindi bisogna trovare un'alternativa.
Un workaround è quello di disattivare il 'pagination', in questo modo:

$dpSlider=new CActiveDataProvider('Film',array(
'criteria'=>array(
'order'=>"rand()",
'limit'=>5,
),
'pagination'=>false,
));


Così si perde però la funzionalità di 'pagination'
Un'altra alternativa sarebbe quella di creare una vista che contenga la limitazione a 5 record e puntare questa.

Spero di esserti stato utile.
0

#3 User is offline   Maurizio Domba Cerin 

  • Yii - Yesss It Is !!!
  • Yii
  • Group: Yii Dev Team
  • Posts: 4,354
  • Joined: 12-October 09
  • Location:Croatia

Posted 01 May 2011 - 02:58 AM

Se servono soltanto 5 film, la paginazione non serve :D

Se si vuole anche la paginazione puoi settare ili limit della paginazione invece dell CDbCriteria

Il limit dell CPagination - http://www.yiiframew...on#limit-detail
Ed e da qui che vengono i 10 record di default - http://www.yiiframew...pageSize-detail
Find more about me.... btw. Do you know your WAN IP?
0

#4 User is offline   dchan 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 32
  • Joined: 28-March 11
  • Location:Italy

Posted 01 May 2011 - 03:39 AM

come si fà ad impostare il limit di CPagination?

ho provato ad impostarlo con limit=>5 ma è read-only.
0

#5 User is offline   falexio 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 13
  • Joined: 02-April 11

Posted 02 May 2011 - 03:58 AM

Vi ringrazio per la risposta.
Non ero riuscito a darmi una risposta valida.
Nel caso in questione andrà benissimo una vista limitata a 5. La domanda l'avevo posta proprio per comprendere il funzionamento in quanto siccome sono proprio neofita di questo Framework cerco di non lanciarmi subito nelle soluzioni fai da te ma quando sbatto su un problema lo sfrutto per cercare di comprendere meglio il funzionamento.
Grazie

Saluti
0

#6 User is offline   Maurizio Domba Cerin 

  • Yii - Yesss It Is !!!
  • Yii
  • Group: Yii Dev Team
  • Posts: 4,354
  • Joined: 12-October 09
  • Location:Croatia

Posted 02 May 2011 - 04:12 AM

View Postdchan, on 01 May 2011 - 03:39 AM, said:

come si fà ad impostare il limit di CPagination?

ho provato ad impostarlo con limit=>5 ma è read-only.


si... limit e read-only... si deve usare pageSize
Find more about me.... btw. Do you know your WAN IP?
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