-
如果希望在原有内容基础上添加新的内容,可用{__block__}即可解析为原有内容
查看全部 -
继承{extend name="common/*" /},当内容需要与公共部分不同时,只需要采用相同的标签,更改为不同的内容即可,{block name=""}{/block},同一模板内不允许有同样的block,如果希望在原有内容基础上添加新的内容,可用{__block__}即可解析为原有内容
查看全部 -
包含和继承
视图层页面通过include方式加载公共页面
{inclue file="common/nav" /}
继承 一个页面呢可继承另外的页面
{extend file="common/base" /}
同一个页面中不允许有两个同样的block name
block表示替换被继承的页面中指定的样式或者标签
{block name="title"}
要替换的值
{/block}
layout
layout 'layout_on' =>'true' 'layout_name'=>'a'开启后默认的访问view文件机制发生变化,
会访问view/a.html,
a.html 中的{__CONTENT__}的内容会被index控制器下指定方法对应view/index/*.html文件内容替换,
从而 达到访问不同的方法,改方法对应的view文件会显示不同的内容
若要改变其他共有的部分,还可通过控制器层使用$this -> assign传值
通过给方法传递参数() a.html可以显示不同的内容
查看全部 -
5-7 条件判断标签
{switch name="'Think.get.level"}
{case value="1|2"}<p>铜牌会员</p>{/case} 1和2可以共用 用|分割
{case value="3"}<p>黄金会员</p>{/case}
{case value="4"}<p>钻石会员</p>{/case}
{default /} <p>游客</p>
{/switch}
value="1,2,3" type="in" -> 是否其中一个
value="1,2,3" type="notin" -> 是否不是其中一个
value="1,3" type="between" -> 是否1-3之间
value="1,3" type="notbetween" ->是否不是1-3之间
{range name="Think.get.level" value="1,2,3" type="in"}
<p>当前level是1, 2, 3中的一个</p>
{else/}
<p>当前level不是1, 2, 3中的任何一个</p>
{/range}
in notin between notbetween均有独立标签
{in name="Think.get.level" value="1,2,3"}
{else/}
{/in}
判断变量/常量名是否被定义
{defined name="变量/常量名"}
{else/}
{/defined}
不推荐使用
()为一个条件 可用 and or
{if condition="($a == 1) and ($b == 1)"}
{else/}
{/if}
查看全部 -
比较标签:eq;判断前面的值是否等于后面的值,跟if差不多。equal跟eq一样,只是eq的别名
neq:判断前面的值是否不等于后面的值,是eq的相反。notequal跟neq一样,同上。
gt:判断前面的值是否大于后面的值
lt:判断前面的值是否小于后面的值
egt:判断前面的值是否大于等于后面的值
elt:判断前面的值是否小于等于后面的值
查看全部 -
eq neq 等标签使用
{eq name="a" value="$b"}
{else/}
{/eq}
查看全部 -
for标签
{for start="1" end="10" step="2" name="k"}
{$k}
{/for}
查看全部 -
foreach 用法
{foreach name="list" item="vo" key="s"}
{$s} : {$vo.name} : {$vo.email}
{/foreach}
查看全部 -
模板循环标签:
{volist name="list" id="data" offset="1" length="1" mod="2" empty="没数据" key="i"}
{$data.name} -- {$mod} - {$i}
{/volist}
--- volist --- (name 对应控制器assign定义的二维数组,id相应vaule值,offset定义从第几条记录开始读取,length控制输出的条数,mod对某个值进行取余,empty在对象没数据时起作用,empty中可以接收控制器定义的变量,变量也可配带html标签。$i 的值相当于key,代表第几次循环)
查看全部 -
可以直接在模板中对变量进行调整,如md5加密 {$name|md5},截取字符长度 {$content|substr=0,8} , 时间 {$time|date="Y-m-d", ###}
如果想进行变量多个调整可以类似, {$name|md5|strtoupper}
同时,可在模板中对变量进行初始值设置,{$name|default="Jakob"}
利用thinkphp的view注释,html编译后用户是无法查阅的,形如{/* 这里是thinkphp view 的注释 */}
查看全部 -
模板中可以直接使用系统框架提供的$Think变量,获取来自系统中所有变量的值 模块还支持直接写入php原生代码,但是对维护不利,建议不使用此类操作(在模板中使用原生PHP标签:<?php ?>直接在里面和之前一样写php代码即可。可以使用模板变量,系统变量。但是不建议使用原生,混编维护起来复杂。大多数逻辑在控制器完成。)
在模板中获取常量:{$Think.const.APP_PATH} 或者 {$Think.APP_PATH},两种方式均可;
注意.env必须加上PHP_前缀,并且所有字母大写查看全部 -
thinkphp5中变量赋值可通过以下四种方法:
①$this->assign('变量名',$变量值(名)); //在命名空间下引入think\Controller;
②$this->view->变量名 = '变量值'; //在命名空间下引入think\View;
③View::share('变量名',$变量名); //在命名空间下引入think\View;
④return $this->fetch('html页面',[
'变量名' => ‘变量值',
],[
'大写字母' => '替换内容'
]); //在命名空间下引入think\Controller;
系统提供的路径常量有:
__URL__ //路由地址
__ROOT__ //根目录
__STATIC__ //static目录
__CSS__ //css目录
__JS__ //js目录
可自行在config目录中替换,替换函数为:
’view_replace_str‘ => [
'常量名' => '替换路径'
]
查看全部 -
index/controller下的return view(); ->默认模板的地址是view/index/index.html
return view('upload'); ->view/index/upload.html
return view('public/upload'); ->view/public/upload.html
return view('./123.html'); ->www/public/123.html(即入口文件的public)
return view('./html/123.html'); ->www/public/html/123.html(注意:如果命名为index.html,首先会访问public/index.html,即入口文件的index.html)
还可以通过调用Controller控制器的fetch方法 调用指定的view文件
调用前需要加载use think\Controller 命名空间,并在指定的应用控制器中extends Controller类
$this-> fetch()各参数同view()助手函数相同,区别是fetch()方法也可使用
$this -> assign()方法传递变量的视图层(此方法需继承Controller类才可调用)即tp3.x版本相同,view()方法不能调用此方法
与tp3.x版本不同的是,$this->display()是直接在控制器中输出要显示的字符串,原3.x版本表示的是调用视图层,也可使用$this -> assign()方法,webserver项目中不建议使用$this->display()方法,这会导致视图层不可用
查看全部 -
目录使用小写+下划线的方式命名
类库函数名均以.php结尾
类的文件名均以命名空间定义,并且命名空间和类库文件所在路径一致
查看全部 -
config.php
模块配置中 return[
'default_return_type' => 'json'
];
如果是xml 直接修改值xml
查看全部
举报