PDA

View Full Version : ساخت pagination (حل شد)



SlowCode
یک شنبه 13 بهمن 1392, 18:27 عصر
سلام
من طبق آموزش سایت فریم ورک yii (http://www.yiiframework.com/doc/api/1.1/CPagination) این کدها رو نوشتم:


$criteria = new CDbCriteria();
$criteria->condition="publish=1";
$count=Blog::model()->count($criteria);
$pages=new CPagination($count);

// results per page
$pages->pageSize=10;
$pages->applyLimit($criteria);
$models = Blog::model()->findAll($criteria);


$dataProvider=new CActiveDataProvider('Blog',array(
'criteria'=>$criteria,
));

تو ویو هم:


<?php $this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider,
'itemView'=>'_view',
'pager' => array(
'maxButtonCount' => 10,
),
)); ?>
<?php $this->widget('CLinkPager', array(
'pages' => $pages,
)); ?>

الان pagination ساخته میشه ولی تو صفحه اول همه مطالب لود میشن! در صورتی که pageSize رو 10 تا گذاشتم!
وقتی هم به صفحه مثلا 2 میرم همون پست های صفحه اول میاد.
لطفا راهنمایی کنید.

MMSHFE
یک شنبه 13 بهمن 1392, 19:50 عصر
لطفاً بگین که این کدها رو توی چه فایلی مینویسید. مثلاً ویوی شما اسم فایلش چیه؟ بعنوان مثال عرض میکنم، اگه فایل ویوی شما اسمش view.php_ باشه و خاصیت itemView رو view_ گذاشته باشین، برنامه اشکال منطقی داره. اما بطور کلی برای صفحه بندی نیازی نیست حتماً بطور مستقیم از CPagination استفاده کنید. مثال از پروژه ای که توی پکیج ارائه شده بود (متد actionView از ProjectController) :


public function actionView($id)
{
$issueDataProvider=new CActiveDataProvider('Issue', array(
'criteria'=>array(
'condition'=>'project_id=:projectId',
'params'=>array(':projectId'=>$this->loadModel($id)->id),
),
'pagination'=>array(
'pageSize'=>1,
),
));

$this->render('view',array(
'model'=>$this->loadModel($id),
'issueDataProvider'=>$issueDataProvider,
));
}

SlowCode
یک شنبه 13 بهمن 1392, 20:40 عصر
تو فایل ویو index نوشته بودم. اکشن ها هم مال actionIndex بودن.
خدا خیرتون بده این کد شما رو نوشتم و مشکلم حل شد!:قلب:
باور کنین چند ساعت تو نت هرچی کد پیدا کردم تست کردم ولی هیچ کدوم جواب نداد! تو پکیج هم دیده بودم ولی هرچقدر گشتم پیداش نکردم.

خیلی ممنون.