博客列表 >thinkphp5.1循环标签与分页

thinkphp5.1循环标签与分页

无耻的鱼
无耻的鱼原创
2018年05月31日 19:49:30998浏览

注意事项:

1.	{foreach}			循环:类似原生
2.	{volist}			循环:应用广泛,参数多,功能强大
	offset 				从某条开始(从0开始计数)
	length				显示数量
3.	{volist name="staff" id="data" mod='2'}	    id除以mod余数为1(value)显示奇数行
	{eq name='mod' value='1'}	
	empty="数据为空"		数据为空

4.	性别判断
	{in name="staff" value="1,2"}
	{if $staff.sex == 0}
	男
	{else /}
	女
	{/in}	


 	{//123} 			单行注释
 	{/*					多行注释
		123
	*/}

文件位置

1111.png

Dome7实例

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

use think\facade\Request;

class Dome7 extends Controller
{
	//测试
	function index()
	{
		return '你好';
	}


	//循环标签
	function demo1()
	{
		$staffs = Staff::all(function($query){
			$query->field(['id','name','sex','age','money']);
			// ->where('id','>','255');
		});
		// dump($staffs);
		// halt($staffs);

		$this->view->assign('staff',$staffs);

		return $this->fetch();
	}

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

		//分页显示数量
		$sum = 4;

		//是否显示简单分页
		$simple = false;

		//用模型获取分页数据
		$paginate = Staff::paginate($sum,$simple,$config);

		//渲染分页HTML代码
		$page = $paginate->render();

		//分页数据->模板
		$this->view->assign('staff',$paginate);
		//分页变量->模板
		$this->view->assign('page',$page);

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

	}
}

运行实例 »

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

Staff.php实例

<?php

namespace app\index\model;

use think\Model;
use think\model\concern\SoftDelete; //导入软删除功能

class Staff extends Model
{
	use SoftDelete;
	
    protected $table = 'aaa';

    protected $pk = 'id';

    //设置删除时间字段,配合软删除功能
    protected $deleteTime = 'delete_time';

    //设置软删除字段的默认值
    protected $defaultSoftDelete = 0;


    // 模型获取器
    
    // 获取器 1.sex
    protected function getSexAttr($value)
    {
    	$sex = [0=>'男',1=>'女'];
    	return $sex[$value];
    }

    // 获取器 2.money
    // protected function getMoneyAttr($value,$data)
    // {
    // 	return $data['name'].'的工资是:'.$value;
    // }

    // 获取器 2.money
    protected function getMoneyAttr($value,$data)
    {
        return $value;
    }

	// 获取器 3.abc(自定义)
    protected function getAbcAttr($value,$data)
    {
    	return $data['name'].'的年龄是:'.$data['age'].' ,工资是:'.$data['money'];
    }

    // 模型修改器

    // 模型获取器 1.时间转换为时间戳
    protected function setEntryTimeAttr($value)
    {
    	return strtotime($value);
    }

    // 模型获取器 2.支持第二个参数
    protected function setMoneyAttr($value,$data)
    {
    	return $value + $data['age'];
    }

    //类型转换
    protected $type=[
    	'id' => 'interger',
    	'sex' => 'interger',
    	'money' => 'interger',
    	'age' => 'interger',
    ];

    //自动完成 针对写操作.新增\更新 
    //相当于设置的默认值

    protected $insert = [
    	'sex' => 0,
    	'age' => 18,
    	'money' => 3600

    ];

    //更新
    protected $update = ['sex' => 0];

    //针对新增与更新  更新一些相同的东西
    protected $auto = ['sex' => 0];  


    //开始当前时间戳 功能
    // (也可以在config/database.PHP中开启)
    protected $autoWriteTimestamp = true;

    //设置更新的字段
    protected $createTime = 'create_time';
    protected $updateTime = 'update_time';



}

运行实例 »

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

demo1实例

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

<div class="container">
	<div class="row">
		<h3 class="text-center">员工信息表</h3>
		<div class="col-md-2"></div>
		<div class="col-md-8">
			<table class="table table-bordered  text-center">
				<tr class="bg-success">
					<td>ID</td>
					<td>姓名</td>
					<td>性别</td>
					<td>年龄</td>
					<td>工资</td>
				</tr>

				<!-- {//模板中创建变量获取数据}
				{//ssign name="staff" value=":\app\index\model\Staff::all()"}
				{//助手函数获取数据}
				{//assign name="staff" value=":model('staff')::all()"}


				{//foreach $staff as $data}
				<tr>
					<td>{//$data.id}</td>
					<td>{//$data.name}</td>
					<td>{//$data.sex}</td>
					<td>{//$data.age}</td>
					<td>{//$data['money']}</td>
				</tr>
				{///foreach} -->


				{//volist name="staff" id="data" offset="2" length="2"}
				{empty name="staff"}
				<h2>没有数据</h2>
				{else /}
				{volist name="staff" id="data" mod='2'}
				{eq name='mod' value="1"}
				
				<tr>
					<td>{$data.id}</td>
					<td>{$data.name}</td>
					<td>{$data.sex}</td>
					<td>{$data.age}</td>
					<td>{$data['money']}</td>
				</tr>
				
				{/eq}
				{/volist}
				{/empty}
			</table>
		</div>
		<div class="col-md-2"></div>
	</div>
</div>


{load href="/static/bootstrap/js/jquery-3.2.1.js" }
{load href="/static/bootstrap/js/bootstrap.js" }

运行实例 »

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

demo2实例

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

<div class="container">
	<div class="row">
		<h3 class="text-center">员工信息表</h3>
		<div class="col-md-2"></div>
		<div class="col-md-8">
			<table class="table table-bordered  text-center">
				<tr class="bg-success">
					<td>ID</td>
					<td>姓名</td>
					<td>性别</td>
					<td>年龄</td>
					<td>工资</td>
				</tr>
				
				<!-- 第一种分页方式 -->
				{foreach $staff as $data}
				<tr>
					<td>{$data.id}</td>
					<td>{$data.name}</td>
					<td>{$data.sex}</td>
					<td>{$data.age}</td>
					<td>{$data['money']}</td>
				</tr>
				{/foreach} 
				
				<!-- 第二种分页方式 -->
				{//volist name="staff" id="data" }				
				<!-- <tr>
					<td>{$data.id}</td>
					<td>{$data.name}</td>
					<td>{$data.sex}</td>
					<td>{//$data.age}</td>
					<td>
					{///between name="data.age" value="0,25" }
					很年轻么
					{/between}
					{///between name="data.age" value="26,40" }
					上年纪了
					{////between}
					{///between name="data.age" value="41,100" }
					很大年纪啦
					{////between}
					</td>
					<td>{//$data['money']}</td>
				</tr> -->
				{///volist}
			</table>
			<div class="text-center">{$page|raw}</div>
		</div>
		<div class="col-md-2"></div>
	</div>
</div>


{load href="/static/bootstrap/js/jquery-3.2.1.js" }
{load href="/static/bootstrap/js/bootstrap.js" }

运行实例 »

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




声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议