第 39 章 ThinkPHP--视图
學(xué)習(xí)要點: 1.模版定義 2.賦值和渲染 3.模版地址 4.獲取內(nèi)容
?
本節(jié)課,我們將要學(xué)習(xí)一下 ThinkPHP 視圖,視圖是 Web 的可見內(nèi)容,一般是 HTML 結(jié)合 PHP 獲取的數(shù)據(jù)提供給用戶使用的部分,屬于 MVC 中的 V。
一.模版定義 模版在使用之前需要一定的設(shè)置,才能方便開發(fā)者使用。每個模塊的模版文件是獨立的, 為了對模版文件更加有效的管理,ThinkPHP 對模版文件機型目錄劃分,默認的模版文件定 義規(guī)則是: 視圖目錄/[模版主題/]控制器名/操作名+模版后綴 第一步:在 User 控制器模塊執(zhí)行一條語句: //渲染模版輸出 $this->display(); 什么都沒有定義的情況下,會自動報錯,錯誤信息提示如下: 模板不存在:./Weibo/Home/View/User/index.html 通過這個錯誤提示,我們只要在 View 目錄下創(chuàng)建 User 目錄,并在 User 目錄下創(chuàng)建 index.html 文件,這時模版渲染模版輸出成功。 默認情況下視圖目錄是 View,如果你想改變成別的目錄名可以設(shè)置: //修改模版的視圖目錄 'DEFAULT_V_LAYER' =>'Template', 默認情況下的模版文件后綴是.html,如果你想改變成別的后綴可以設(shè)置: //修改模版中的文件的后綴 'TMPL_TEMPLATE_SUFFIX'=>'.tpl' 如果感覺每一個模塊,都要創(chuàng)建相應(yīng)的目錄太過于麻煩,可以設(shè)置: //用下劃線代替目錄層次 'TMPL_FILE_DEPR'=>'_', //User_index.tpl 如果不想將模版存在在當前 Weibo 目錄下,而設(shè)置在外部: //設(shè)置外部的模版目錄 'VIEW_PATH'=>'./Public/', 如果一個系統(tǒng)要考慮多套界面皮膚的話,要考慮到默認皮膚以及可選皮膚: //設(shè)置默認主題目錄 'DEFAULT_THEME'=>'default', //切換主題 $this->theme('blue')->display(); 二.賦值和渲染 如果要在模版中輸出變量,必須在控制器中把變量傳遞給模版。ThinkPHP 提供了 assign 方法對模版變量賦值,無論何種變量類型都統(tǒng)一使用 assign 賦值。 //給模版?zhèn)鬟f一個變量 $this->assign('user', '蠟筆小新'); //模版中調(diào)用變量 {$user} PS:這個方法必須在 display()方法之前使用,保存變量正確傳遞。
渲染模版輸出使用的是 display 方法,有三個可選參數(shù): display([模版文件][,字符編碼][,輸出類型]); 如果不傳遞任何參數(shù),它會按照默認的目錄定位模版的位置: 當前模塊/默認視圖目錄/當前控制器/當前操作.html //不傳參數(shù) $this->display(); ./Weibo/Home/View/default/User/index.tpl //修改默認模版 $this->display('add'); ./Weibo/Home/View/default/User/add.tpl //修改默認模版,目錄加模版 $this->display('Bbb/add'); ./Weibo/Home/View/default/Bbb/add.tpl //修改默認模版,模塊加目錄加模版 $this->display('Admin@Bbb/add'); ./Weibo/Admin/View/default/Bbb/add.tpl //修改默認模版,主題加目錄加模版 $this->theme('blue')->display('Bbb/add'); ./Weibo/Home/View/blue/Bbb/add.tpl //修改默認模版,自定義模版 $this->display('./Template/Public/add.tpl'); ./Template/Public/add.tpl //Template 和 Weibo 同級 //修改默認模版,指定編碼和文件類型,一般不用填寫,默認即可 $this->display('add', 'utf-8', 'text/xml');
三.模版地址 ThinkPHP 封裝了一個 T 函數(shù),專門用于生成模版文件。格式如下: T([資源://][模塊@][主題/][控制器/]操作,[視圖分層]); //輸出當前模版地址 echo T(); 當然可以結(jié)合上面講的所有定義方法來自定義模版: echo T('Public/add') echo T('Admin@index'); echo T('Admin@Public/add', 'Template'); //直接使用T函數(shù)輸出 $this->display(T()); 四.獲取內(nèi)容 如果需要獲取模版的內(nèi)容,可以使用 fetch()方法,這個方法的使用和 display()方 法一致。 //獲取模版里的內(nèi)容 $content = $this->fetch(); var_dump($content); //通過內(nèi)容再渲染輸出 $this->show($content); PS:使用 fetch()方法獲取內(nèi)容,主要是為了可以處理和過濾更加復(fù)雜的內(nèi)容。然后 處理后再由 show()方法輸出。 感謝收看
轉(zhuǎn)載于:https://www.cnblogs.com/yu520zhong/p/4855842.html
總結(jié)
以上是生活随笔為你收集整理的第 39 章 ThinkPHP--视图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第 39 章 ThinkPHP--CUR
- 下一篇: Algorithm I assignme