[英]Yii: Pagination not working
I am new in yii framework. 我是yii框架的新手。 creating a job site in yii.My controller is sitecontroller.php,view file is list_jobseeker.php.I got the error Property "CDbCriteria.0" is not defined.
在yii中创建工作站点。我的控制器是sitecontroller.php,查看文件是list_jobseeker.php。我收到错误消息“ CDbCriteria.0”,但未定义。
Controller 调节器
<?php
public function actionlist_jobseeker()
{
$items = Yii::app()->db->createCommand()
->select('u.name,u.id uid, u.email, j.title jTitle, j.experience, s.contact_no, s.gender')
->from('user u')
->join('job_seeker_profile s','u.id = s.user_id')
->join('job_profile j','u.id = j.user_id')
->join('location l','l.id = s.location_id')
->join('category c','c.id = j.category_id')
->where('u.role=:role', array(':role'=>'user'))
->order('u.id')
->queryAll();
$count=Job::model()->count($items);
$pages=new CPagination($count);
$pages->pageSize=2;
$pages->applyLimit($items);
$number_rec=count($items);
$this->render('list_jobseeker',array('items' =>$items,'pages' => $pages));
}
?> ?>
Pagination display code in view file,list_jobseeker is 视图文件中的分页显示代码,list_jobseeker为
<p ><?php $this->widget('CLinkPager', array(
'pages' => $pages,
)) ?></p>
Anybody give any suggestion plz? 有人给任何建议吗?
In your code you execute the query before applying the pagination, so it doesn't make sense. 在您的代码中,您应在应用分页之前执行查询,因此这没有任何意义。
The problem come from your applyLimit
问题来自您的
applyLimit
$pages=new CPagination($count);
$pages->pageSize=2;
$pages->applyLimit($items);
You give it an array of objects already fetched and according to the documentation it takes a CDbCriteria
object. 您给它一个已经获取的对象数组,并根据文档获取一个
CDbCriteria
对象。
You should perform something like 您应该执行类似
//Set the criteria for the request
$criteria = new CDbCriteria;
$criteria->select = "..."; //your columns
$criteria->condition = "..."; //your condition
$criteria->order = "..."; //your order
$criteria->with = "..."; //the join you wish to make
//Set the pagination for the request
$count = User::model()->count($criteria);
$pages=new CPagination($count);
$pages->pageSize=2;
$pages->applyLimit($criteria);
//Find the matching items
$items = User::model()->findAll($criteria);
Documentation of the CDbCriteria CDbCriteria的文档
Edit : if you really want to use createCommand
check this forum post 编辑 :如果您真的要使用
createCommand
请查看此论坛帖子
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.