您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
thinkphp3.2.1学习笔记-视图模型和分页
发布时间:2017-09-19 12:09:39编辑:雪饮阅读()
视图模型-多表连查:
建立user视图模型:
<?php
namespace Home\Model;
use Think\Model\ViewModel;
class UserViewModel extends ViewModel{
protected $viewFields=array(
'User'=>array('id','name'),
//设置从表中要取出的字段名,设置从表与住表进行多表查询的on条件
'Card'=>array('code','_on'=>'User.id=Card.uid'),
);
}
user控制器中调用:
$user=D('UserView');
echo "<pre>";
print_r($user->select());
echo "</pre>";
视图模型-记录分组查询:
控制器中调用:
$user=D('UserView');
echo "<pre>";
//按id分组
print_r($user->group('id')->select());
echo "</pre>";
视图模型:
<?php
namespace Home\Model;
use Think\Model\ViewModel;
class UserViewModel extends ViewModel{
protected $viewFields=array(
'User'=>array('id','name','_type'=>'LEFT'),
'Content'=>array('content','_on'=>'User.id=Content.uid'),
);
}
视图模型-分组统计每组记录条数:
控制器同上
视图模型:
<?php
namespace Home\Model;
use Think\Model\ViewModel;
class UserViewModel extends ViewModel{
protected $viewFields=array(
'User'=>array('id','name','_type'=>'LEFT','COUNT(Content.uid)'=>'num'),
//设置从表中要取出的字段名,设置从表与住表进行多表查询的on条件
'Content'=>array('content','_on'=>'User.id=Content.uid'),
);
}
自定义普通模型实现分页:
user自定义普通模型:
<?php
namespace Home\Model;
use Think\Model;
use Think\Model\RelationModel;
class UserModel extends RelationModel{}
?>
user控制器:
<?php
// 本类由系统自动生成,仅供测试用途
namespace Home\Controller;
use Think\Controller;
use Home\UserModel;
use Think\Page;
class UserController extends Controller {
public function index(){
$user=D('User');
$count=$user->count();
//实例化分类类,传递参数分别为数据总条数和每页显示的条数
$page=new Page($count, 2);
//实例化后的page是一个对象,如果需要自定义分页,利用该对象会很方便
//获取分页模板标签(如上一页,下一页)
//设置分页标签文本,不设置则默认以左右箭头和双左右箭头为分页标签文本
$page->setConfig('first', '首页');
$page->setConfig('prev', '上一页');
$page->setConfig('next', '下一页');
//设置分页样式
$page->setConfig('theme', '共%TOTAL_ROW% %HEADER% 共%TOTAL_PAGE%页 %FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%');
$show=$page->show();
//获取分页数据,firstRow起始索引,listRows分页大小(每页显示多少条)
$list=$user->limit($page->firstRow,$page->listRows)->select();
$this->assign('list',$list);
$this->assign('page',$show);
$this->display();
}
}
user控制器的index方法的局部模板代码:
<ul>
<foreach name="list" item="obj">
<li><{$obj.id}>、<{$obj.name}></li>
</foreach>
</ul>
<{$page}>
配置地址栏get传参的分页参数名:
默认的地址栏get传参分页参数为p
在配置文件中添加如:
'VAR_PAGE'=>'page',
关键字词:thinkphp3.2.1,视图模型和分页,视图,模型,分页