Thinkphp5模板繼承和替換的問題

  1. 同一個模塊下的common繼承問題,這裏於index模塊爲例

雷小天博客

在index模塊下有自己的common和模塊主視圖文件夾index,那麼我index0裏面繼承了自己的base.html是這樣的

//base.html文件
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>
      {block name="title"}
        雷小天thinkPHP開發版
      {/block}
    </title>
    <link rel="stylesheet" type="text/css" href="__CSS__/style.css">
    <link rel="stylesheet" type="text/css" href="__LAYUI__/css/layui.css">
    <script type="text/javascript" src="__LAYUI__/layui.js"></script>

  </head>
  <body>
    <div class="wrap">
      <!-- 頭部 -->
      <div class="header">
        {include file="common/nav" /}
      </div>

      <!-- 中部 -->
      <div class="main">
        <!-- 邊欄 -->
        <div class="body">
          {block name="body"}
          {/block}
        </div>
        <!-- 內容 -->
        <div class="sidebar">
          {block name="sidebar"}
          {/block}
        </div>
      </div>

      <!-- 尾部 -->
      <div class="footer">
        {block name="footer"}
          默認值footer
        {/block}
      </div>
    </div>
  </body>
</html>

下面是index0.html

 {extend name="common/base" /}
{block name="title"}
  thinkPHP5 index頁
{/block}

{block name="body"}
  <h1>這裏是index body</h1>
{/block}

{block name="sidebar"}
  <h1>這裏是index sidebar</h1>
{/block}


{block name="footer"}
  index_22{__block__}
{/block}

我在index0.html文件中有重新定義title,所有最後的title是thimkPHP5 index頁,但值得注意的是我footer內容是index_22{__block__},而{__block__}指的是在模板base.html中同位置的默認值footer,所有最後footer的內容是index_22默認值footer。

以上是同模塊下的繼承,還有一種是繼承common模塊的繼承,這裏於idnex模塊下的view/index.html繼承common模塊下view下的base.html文件爲例

雷小天博客

不同的模塊繼承方式也不同了,這裏繼承common模塊下的繼承方式爲:{extend name="common@base" /},而在同模塊下的繼承是:

{extend name="common/base" /}。而有些需求在base.html文件中還需要繼承其他的模板,那麼在base.html中可以這樣繼承:  {include file="common@header" /}這個意思就是繼承common下的view/header.html文件


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章