Blogger Information
Blog 65
fans 3
comment 4
visits 67770
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
thinkphp5.1循环标签与分页
无耻的鱼
Original
1008 people have browsed it

注意事项:

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" }

运行实例 »

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




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