传智黑马PHP69期-第7部分ThinkPhp-第2天TP-09_模板的定义
第7部分 ThinkPhp
第2天 TP
09_模板的定义
视图的组成
此处所说的视图就是MVC中所说的V层,视图层也要展示层。thinkphp中视图层是由HTML模板文件组成的。
模板的定义
为了对模板文件更加有效的管理,ThinkPHP对模板文件进行目录划分,默认的模板文件定义规则是:视图目录(view)/控制器名(小写)/方法名(小写)+ 模板后缀(框架的默认视图文件后缀是.html)

模板渲染和赋值
控制器中指定渲染的模板文件
在控制器中使用
方法一:
return $this->fetch('[模板文件]'[,'模板变量(数组)']);
方法二:
return view('[模板文件]'[,'模板变量(数组)']); # 辅助函数
# 针对于自定义路由
return view('index@index/index');
模板赋值
方法一:了解
$this->assign('name','ThinkPHP');
方法二:推荐写法
以关联数组的方式在渲染模板方法第二个参数填写
return view('index@index/index',compact('aa','arr')); # 推荐写法
全局赋值
use think\facade\View;
# 赋值全局模板变量
View::share('name','value');
# 或者批量赋值
View::share(['name1'=>'value','name2'=>'value2']);

全局赋值

总结:
渲染 view 函数
赋值 局部 compact() 全局 think\facade\View::share();
使用函数
需要对模板输出使用函数进行过滤或其它处理的时候,就可以使用一下函数来解决。
{$password|md5}
当然也可以写成如下的写法,推荐
{:md5($password)}
注:不但用php系统提供函数,还可以用tp提供的函数,还可以用户在tp规定的文件中定义的写的函数


原样输出
因thinkphp5的标签语法和js的一致,所以有的时候,可能会使用到它。
{literal}
Hello,{$name}!
{/literal}
上面的{$name}标签被literal标签包含,因此并不会被模板引擎解析,而是保持原样输出。


循环标签【重点】
# foreach 【推荐写法】
{foreach $list as $key=>$vo }
{$vo.id}:{$vo.name}
{/foreach}
# volist
{volist name="list" id="vo"}
{$vo.id}:{$vo.name}<br/>
{/volist}



条件判断
{if ( $name == 1) OR ( $name > 100) } value1
{elseif $name == 2 /} value2
{else /} value3
{/if}


模板继承
模板继承其实并不难理解,就好比类的继承一样,模板也可以定义一个基础模板(或者是布局),并且其中定义相关的区块(block),然后继承(extend)该基础模板的子模板中就可以对基础模板中定义的区块进行重载。

定义一个基础模板

在子模板(其实是当前操作的入口模板)中使用继承




posted on 2020-02-19 16:59 herisson_pan 阅读(9) 评论(0) 收藏 举报
浙公网安备 33010602011771号