我是yii框架的新手。在yii中创建一个工作站点。我的控制器是sitecontroller.php,视图文件是list_jobseeker.php。我得到错误属性“CDbCriteria.0”没有定义。
控制器
<?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));
}
&GT;
视图文件中的分页显示代码,list_jobseeker是
<p ><?php $this->widget('CLinkPager', array(
'pages' => $pages,
)) ?></p>
有人提出任何建议吗?
答案 0 :(得分:2)
在您的代码中,您在应用分页之前执行查询,因此没有意义。
问题来自您的applyLimit
$pages=new CPagination($count);
$pages->pageSize=2;
$pages->applyLimit($items);
你给它一个已经提取的对象数组,根据documentation它需要一个CDbCriteria
对象。
您应该执行类似
的操作//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);
的文档
修改:如果您真的想使用createCommand
,请查看此forum post