相思资源网 Design By www.200059.com

ThinkPHP 内置的模板引擎来定义模板文件,以及使用加载文件、模板布局和模板继承等高级功能。

每个模板文件在执行过程中都会生成一个编译后的缓存文件,其实就是一个可以运行的 PHP 文件。

引用自 http://www.kancloud.cn/manual/thinkphp5/118122

PHP

/*index/controller/example.php*/
 
use think\Controller;
 
class test extends Index {
 
  public function template (){
    $name = 'Jerry';
    $allName = [
      0 => "Jerry", 
      1 => "Tom"
    ];
 
    $this->assign('nameA',$name);
    $this->assign('allName',$allName);
 
    return $this->fetch('example');
  }
}

 
HTML

/*index/view/example.html*/
 
<span>{$nameA}</span>
 
{volist name="allName" id="vo"}
 
  <p data-sub="{$key}" data-index="{$i}">{$vo}</p>
 
{/volist}
 
 
Result

<br /><span>Jerry</span>
 
<p data-sub="0" data-index="1">Jerry</p>
 
<p data-sub="1" data-index="2">Tom</p>
 
 

这样 ThinkPHP 便完成了对页面的解析工作,其中涉及到 模板实例化、定位、赋值、渲染及标签的使用。

视图实例化

暂无

模板赋值

显然在在模板中直接使用 $name 是找不到该变量的。必须使用 assign 方法对模板赋值。在执行渲染输出函数前, assign 方法使 函数内部变量与模板变量建立起映射关系。

$this->assign('name',$name);
$this->assign('allName',$allName);
 

通过赋值之后,便可以在模板文件中使用 {$nameA} 来输出该变量了。

模板渲染

当数据已经准备好渲染到页面上,还需要指定 html 文件作为渲染模板,为当前函数执行 fetch 方法时候传入 example 参数。 

return $this->fetch('example');

模板标签

在模板文件中使用内置标签可以帮助我们在模板中循环、判断变量。它以一对花括号 {tag} {/tag} 作为开标签和闭标签。 { 与 } 之间必须紧跟标签属性或值,存在 空格 和 换行 都不能在渲染时被解析。

volist 标签就是内置标签中的其中一个,通常用来循环某个数组变量。

{volist name="allName" id="vo"}
 
  <p data-sub="{$key}" data-index="{$i}">{$vo}</p>
 
{/volist}

allName 是通过模板赋值的变量 ,现在可以在模板上直接使用了,显然它是一个数组, volist 标签对它做了循环操作。

volist 标签常用的一些属性:

prop name id key 数组名 当前元素 value allName vo

隐藏在 volist 中的有几个内部变量 {$key} {$i} ,分别代表了 数组下标 和 循环次数 。

内置标签

与 volist 一样好用的内置标签还有很多:

<notempty name=""></notempty> //判断数据是否不为空 不为空则执行

标签:
thinkphp模板引擎,thinkphp的模板引擎,thinkphp模板引擎原理

相思资源网 Design By www.200059.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
相思资源网 Design By www.200059.com

评论“ThinkPHP 模板引擎使用详解”

暂无ThinkPHP 模板引擎使用详解的评论...

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?