24、视图view的标签
View(‘index’)//app/admin/view/entry/index.html
View(‘upload)//app/admin/view/entry/upload.html
View(‘public/upload)//app/admin/view/public/upload.html
View(‘./index.html’)//public/index.html
View(‘index’,[‘email’=>’[email protected]’])//可以在页面中用{KaTeX parse error: Expected 'EOF', got '}' at position 6: email}̲调用,不推荐使用,推荐使用this->assign();分配变量。
View(‘index’,[‘email’=>’[email protected]’],[‘STATIC’=>’123’])//页面中可以用STATIC调用,不推荐使用
(2)$this->fetch();前两个参数与view一样,需要继承think\Controller.
(3)向页面赋值的方式
view(‘index’,[‘name’=>’123’])
$this->assign(‘name’,’123’)
view()->share(‘name’,’123’);
(4)在配置文件中配置view_replace_str=>[‘123’=>’456’]
可以在前台中_123_直接调用
(5)修改thinkphp/convention.php中的template的配置可以修改在前端的标签。
(6)页面中的几个已经定好的标签**STATIC,JS,CSS,ROOT**
(7){KaTeX parse error: Expected 'EOF', got '}' at position 7: Think.}̲可以不通过控制器直接调用**系…Think.server},{KaTeX parse error: Expected 'EOF', got '}' at position 14: Think.session}̲,{Think.cookie},{KaTeX parse error: Expected 'EOF', got '}' at position 10: Think.get}̲ 同样可以获得系统常量{Think.APP_PATH}
(8)模板中的变量操作
{$email|md5}//md5加密
{$email|substr=0,8}//从0位开始截,截取8位
{$time|date=’Y-M-D’,###}
(9)模板的三种遍历方式
{volist name=“控制器分配过来的变量名”, id=“自定义的名字” offset=”从第几个开始遍历” length=”遍历几个” mod=“对几取余” key=“当前循环的次数,默认为i” empty=“空数组时的提示消息”}
{volist name="list", id="vo" key="i" empty="没有数据"}
<p> {$i} </p>
<p> {$mod} </p>
<p> {$vo.email} </p>
<p> {$name} </p>
{/volist}
{foreach name=“变量名” key=“定义数组下标”, item=“自定义的名字”}
```bash
{foreach name="list" key="name", item="vo"}
也可以{foreach $list as $vo}
{$name}:{$vo.email}
{/foreach}
{for name="循环次数" start="开始" end="结束" step="每次加几默认为1"}
```bash
```bash
{for name="s" start="1" end="10" step="2"}
{$s}
{/for}
(10)模板的比较标签
```bash
{eq name="a", value="100"}//看变量a和value中的值是不是相等
相等
{else/}
不相等
{/eq}
{neq name="a", value="100"}//看变量a和value中的值是不是不相等
不相等
{else/}
相等
{/neq}
{equal name="a", value="100"}//同上
1111
{else/}
2222
{/equal}
{notequal name="a", value="100"}//同上
1111
{else/}
2222
{/notequal}
(11)模板的条件判断标签
{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}
我今天刚好遇到了这个问题,其实是switch的问题,模板解析后,switch:和第一个case:之间不能有有输出的,一个空格也不行,所以第一个要紧跟着
if判断,后面可加判断条件condition。不推荐使用此法
{if condition="($Think.get.level==1) AND ($Think.get.id==10)"}
当前level=1并且id=10
{else/}
当前level不等于或1id不等于10
{/if}
defined可以判断常量是否定义
{defined name="APP_PATH"}
APP_PATH已定义
{else/}
APP_PATH未定义{/defined}
{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独立标签等同于这个
{in name="Think.get.level" value="1,2,3"}
<p>当前level是1, 2, 3中的一个</p>
{else/}
<p>当前level不是1, 2, 3中的任何一个</p>
{/in}
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之间
in notin between notbetween均有独立标签