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}<p>{$name}:{$vo.email}</p>{/foreach}
{for name=\"循环次数\" start=\"开始\" end=\"结束\" step=\"每次加几默认为1\"}```bash```bash{for name=\"s\" start=\"1\" end=\"10\" step=\"2\"}<p>{$s}</p>{/for}
(10)模板的比较标签<!--eq equal-->```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均有独立标签