上一篇文章介绍过模板继承。我们在使用模板继承时会遇到一个问题:公共模板没有对应的控制器,如果公共模板局部的数据需要是动态的,比如顶部的菜单、底部的友情链接等等,这将无法实现。 为了解决这个问题,Thinkphp提供一个非常有用的功能:Widget扩展。它可以很好的解决上面的问题,下面介绍下具体操作步骤: 1.创建扩展类文件 在当前应用目录中创建 W…
在制作模板时,通常不同的页面模板都有共用的部分。为了提供开发效率和规范,我们可以把共用部分创建为公共模板,其他页面模板进行继承。以下是具体实施步骤: 1.在应用下的 View 目录创建公共模板目录,比如 Public。把公共模板放到这个目录中,公共模板是作为父级模板; 2.根目录的 Public 目录里的应用目录放入公共静态资源,css js im…
Thinkphp系统设置一些路径常量,常用的有: __PUBLIC__ 根目录的Public目录路径 如 /tp/Pbulic 特别注意这个常量只能在模板中使用,不能在控制器中使用 __ROOT__ 根目录路径 如/tp 此常量可以在模板和控制器使用 __APP__ 当前应用路径 如/tp/admin.php 此变量可以在模板和控制器使用 __…
if 条件判断语句是很常用的语句,在Thinkphp模板中应该如何使用if判断呢? 与php原生的相似,只是形式不同。 <if condition="条件判断">...</if> <if condition ="条件判断">...<else />...</if> <if condit…
在Thinkphp模板中可以使用范围比较标签 in notin between notbetween rang in 表示name值在value范围内,其中value的值可以从控制器传过来变量 notin 表示不在范围内 between 表示name值在value值之间 notbetween 表示不在其之间 rang 可以用来表示以上四种范围标签,…
在Thinkphp模板中使用多条件分支语句switch、比较标签eq lt gt elt egt switch标签 <switch name="num"> <case value="1">周一</case> <case value="2">周二</case> <case value=…
在模板中使用 for 标签循环,跟php的for标签类似。 1.最简单的for循环 <for start="0" end="10"> {$i} </for> 这里会输出 0到9的数字。注意:$i 是默认变量的名字 上面的循环相当于php的for循环 <?php for($i=0; $i<10; $i++){ ec…
在控制器中查询的数组数据,如何在模板中遍历出来? 1.控制器中查询数据库中的数据 <?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index(){ $user = …
如何在模板中使用加减乘除运算符 1.常规的运算 {$num++} //输出$num后再加1 {++$num} //$num加1后再输出 {$num * 5} //输出$num乘5后的值 {$user['age'] + 1} //输出数组$user['age']加1后的值,注意不能使用{$user.age + 1},点运算符不支持运算操作 {…
有时我们需要在模板中使用函数对赋值进行操作,应该如何使用? 1.简单的函数使用 {$str|md5} 变量后加 | 竖线后面接函数,这样变量就传给函数了。 2.函数有多个参数,并且传参不是第一个参数 {$time|date='Y-m-d H:i:s',###} $time是传过来的时间戳,使用date()函数操作时,需要用###代替参数。 3.使用…