传智黑马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)    收藏  举报

导航