Blogger Information
Blog 59
fans 0
comment 1
visits 47997
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
think5.1:实现foreach和volist标签模板数据的分页显示—2018年5月30日
白猫警长的博客
Original
1376 people have browsed it

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
}

运行实例 »

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




Correction status:Uncorrected

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post