Limit rows returned !working

I am trying to show recent orders in a view. To do this I use CListView and a new method in the model that returns just my recipients and with a specified number of rows. For some reason the limit criteria doesnt work. Any ideas?

I display here :




                    <?

            $rec=new OrderRecipient;

            $this->widget('zii.widgets.CListView', array(

            'id'=>'recipient-list',            'dataProvider'=>$rec->recent(yii::app()->user->getState('c_id',-1),3),

            'itemView'=>'_transfer',

            'emptyText'=>'You haven\'t made any transfers yet.',

            'enablePagination'=>false,

            'summaryCssClass'=>'asummary',

            'summaryText'=>''

            )); ?>



The model recent() method:




    public function recent($customer_id, $number) {

        //returns recent rows

	$criteria=new CDbCriteria;


        $criteria->with=array('ord','src_curr','dst_curr');

	$criteria->compare('t.customer_id',$customer_id);

        $criteria->order='ord.date_order desc';

        $criteria->limit=$number;


	return new CActiveDataProvider(get_class($this), array(

			'criteria'=>$criteria,

		));

    }



It seems that $criteria->limit=$number; is ignored.

try this below [color=#1C2837][font=monospace][size=2][color=#000000] $criteria[/color][color=#666600]->[/color][color=#000000]limit[/color][color=#666600]=[/color][color=#000000]$number[/color][color=#666600]; [/color][/size][/font][/color]:

$criteria->together=true;

Nope - didnt work :(

It’s probably due to CListView’s pagination which applies its own limit/offset parameters to make pagination work.

I thought that too, hence ‘enablePagination’=>false, in the settings - surely this would disable it?

Try to also set CActiveDataProvider::pagination to false.

Yes! That worked thanks. Working model code:


    

    public function recent($customer_id, $number=0) {

        //returns recent rows

	$criteria=new CDbCriteria;


        $criteria->with=array('ord','src_curr','dst_curr');

	$criteria->compare('t.customer_id',$customer_id);

        $criteria->order='ord.date_order desc';

        if ($number>0) {  

            $criteria->limit=$number;

            return new CActiveDataProvider(get_class($this), array(

	     'criteria'=>$criteria,

                 'pagination'=>false,

        		));

            } else {

            return new CActiveDataProvider(get_class($this), array(

	     'criteria'=>$criteria,

        		));

            }

    }



Thanks very much for your help.