博主信息
博文 59
粉丝 0
评论 1
访问量 57994
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
think5.1:实现foreach和volist标签模板数据的分页显示—2018年5月30日
白猫警长的博客
原创
1653人浏览过

view视图目录下的staff目录下的index2.html模板文件

实例

{load href="/static/bootstrap/css/bootstrap.css"}

<div class="container">
	<div class="row">
		<h2 class="text-center">公司人员工资管理信息表</h2>
		<div class="col-md-8 col-md-offset-2">
			<table class="table table-bordered text-center table-hover">
				<tr class="info">
					<td>ID</td>
					<td>姓名</td>
					<td>性别</td>
					<td>年龄</td>
					<td>工资</td>
				</tr>
				
				<!-- {//一、foreach循环标签:类似于原生的foreach语句}
				{//1.基本用法: $staff是控制器或模板中的变量,$key与$value可自定义}
				{foreach $staff as $staffs}

				{//其实模板可以绕过控制器,直接获取数据}
				{//2.name值的获取过程可以用助手函数model进行简化,这也是推荐的方式}
				{//assign name="staffs" value=":model('staff')::all()" /}
					<tr>
						<td>{$staffs.staff_id}</td>
						<td>{$staffs.name}</td>
						<td>{$staffs.sex}</td>
						<td>{$staffs.age}</td>
						<td>{$staffs.salary}</td>
					</tr> 
				{/foreach} -->

				{//二、volist循环标签:使用最广泛,参数众多,功能强大}
				{//1.基本用法:name="变量名,与控制器对应不可更改" id="循环变量,可自定义"}
				{volist name="staff" id="staffs"}

				{//2.扩展用法_1:获取指定范围内的数据:offset="起始位置" length="记录数量"}
				{//从索引3开始,获取5条,索引是从0开始计算,其实是从第4条开始输出5条}
				{//volist name="staff" id="staffs" offset="3" length="5"}

				{//3.扩展用法_2:获取偶数或奇数行的数据: mod="" 将索引进行模除后的结果}
				{//volist name="staff" id="staffs" mod="2"}
				{/*如果只显示偶数行的数据:模除运算:求余数
					例如第4条记录,当前索引为3,除以2,余数为1,说明为偶数行。
					那么想获取所有奇数行数据,value应该等于多少? 答案:value="0" */}
				{//eq name="mod" value="1"}
					<tr>
						<td>{$staffs.staff_id}</td>
						<td>{$staffs.name}</td>
						<td>
							{//$staffs.sex}
							{in name="staffs.sex" value="0,1"}
								{if $staffs.sex == 0}
								男
								{else /}
								女
								{/if}
							{/in}
						</td>
						<td>{$staffs.age}</td>
						<td>{$staffs.salary}</td>
					</tr>
					{///eq }
				{/volist}	
			</table>
			{$page|raw}
		</div>
	</div>
</div>

{load href="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"}
{load href="/static/bootstrap/js/bootstrap.js"}

运行实例 »



controller控制器下的模板文件:(controller\Staff.php)文件

<?php
namespace app\index\controller;
use think\Controller;
use app\index\model\Staff as StaffModel;

class Staff extends Controller
{
	//循环标签
	public function index1()
	{
		//通过模型获取表中的数据
		$staff = StaffModel::all(function($query) {
			$query->field(['staff_id','name','sex','age','salary']);
		});
		//测试:以上数据是否正常获取
		// halt($staff);	
		//给模板赋值	assign('变量名',$staff)
		$this->view->assign('staff',$staff);

		//渲染模板
		return $this->view->fetch();
	}

	//分页查询
	public function index2()
	{
		//分页配置
		$config = [
			'type' => 'bootstrap',
			'var_page' => 'page'
		];

		//每页显示的数量
		$num = 2;

		//是否显示简单分页,只显示:上一页和下一页
		$simple = false;

		//用模型来获取所有的分页数据:think\paginate
		$paginate = StaffModel::paginate($num, $simple, $config);
		
		//渲染分页HTML代码,返回分页变量
		$page = $paginate->render();

		//将分页数据赋值给模板
		$this->view->assign('staff',$paginate);

		//将分页变量赋值给模板
		$this->view->assign('page',$page);

		//渲染模板
		return $this->view->fetch();
	}
}

运行实例 »


model目录模型下的模板文件(app\index\model\Staff)

<?php
namespace app\index\model;
use think\Model;	//Model没有Facade

class Staff extends Model
{
	protected $table = 'staff';	//表名
	protected $pk = 'staff_id';	//主键ID
}

运行实例 »

点击 "运行实例" 按钮查看在线实例




批改状态:未批改

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学