今天开发一个新功能 就是把两个表中的数据合在一起实现分页的功能(两个表中的字段是不一样的,有共同的属性,但字段名是不一样的)
效果如下图所示:
主要实现部分
courseController.php
$cid = $this->_gets->getParam('cid',0);
$levelid = $this->_gets->getParam('levelid','');
$title = "全部课程";
if($cid)
{
$title = SubCate::model()->getName($cid);
}
$this->pageTitle = $title;
$listinfo = array();
if($cid)
{
$cinfo = Course::model()->findAll("course_class=$cid");
$finfo = UpFile::model()->findAll("file_class=$cid");
}
else
{
$cinfo = Course::model()->findAll();
$finfo = UpFile::model()->findAll();
}
if($cinfo)
{
foreach ($cinfo as $plist)
{
$temp = array();
$temp['type'] = 1;
$temp['title']=$plist->course_title;
$temp['desc'] = $plist->course_describe;
$temp['pic'] = $plist->course_pic;
$temp['id'] = $plist->course_id;
$temp['url'] = $this->createUrl('/course/special',array('id'=>$plist->course_id));
array_push($listinfo,$temp);
}
}
if($finfo)
{
foreach ($finfo as $plist)
{
$temp = array();
$temp['type'] = 2;
$temp['title']=$plist->file_title;
$temp['desc'] = $plist->file_describe;
$temp['pic'] = $plist->file_pic;
$temp['id'] = $plist->file_id;
$temp['url'] = $this->createUrl('/course/detail',array('itemid'=>$plist->file_id));
array_push($listinfo,$temp);
}
}
$info = new CArrayDataProvider($listinfo, array(
//'keyField'=>'itemid',
'totalItemCount'=>count($listinfo),
'pagination'=>array('pageSize'=>40,),
));
$this->render('list',array('listinfo'=>$info,'title'=>$title,'levelid'=>$levelid,'cid'=>$cid));
view/list.php
<?php
$this->widget('zii.widgets.CListView', array(
'id'=>'Clist',
'dataProvider'=>$listinfo,
'itemView'=>'_list_view',//要注意的地方
'template'=>'<ul class="list_sub js_list_sub select">{items}</ul><div class="light">{pager}</div>',//分页填充
'enableSorting'=>false,
'ajaxUpdate'=>false,
'pager'=>array( //通过pager设置样式 默认为CLinkPager
'prevPageLabel'=>'上一页',
'firstPageLabel'=>'首页', //first,last 在默认样式中为{display:none}即不显示,通过样式{display:inline}即可
'nextPageLabel'=>'下一页',
'lastPageLabel'=>'末页',
'maxButtonCount'=>40,
'header'=>'',
),
));
?>
view/_list_view.php //以下内容是要重复的部分
<li <?php if($data['type']==1):?>class="first"<?php endif;?>>
<div class="img">
<a href="<?php echo $data['url'];?>" class="img_a">
<img src="/media/school/<?php echo $data['pic']?>" width="209" height="129" />
<div class="bgcolor hide"></div>
<div class="img_txt hide"><?php echo Tool::str_cut($data['desc'], 80)?></div>
</a>
<div class="img_btn hide">
<a href="javascript:void(0);" class="add_collect">收藏</a><a href="javascript:void(0);" class="add_plan">加入学习计划</a>
</div>
</div>
<h3><a href="<?php echo $data['url'];?>"><?php echo Tool::str_cut($data['title'],50,'');?></a></h3>
</li>