ThinkPHP 5.0--基礎(chǔ)篇(視圖和模版)

ThinkPHP 5.0--基礎(chǔ)篇****(視圖和模版)

一赚楚、視圖view

i. 主要展示界面 可以接受用戶輸入等操作 通常是一個html頁面

ii. 助手函數(shù) view()

image.png
image.png

如果沒有對模版進(jìn)行配置(沒有在配置文件中修改 )默認(rèn)調(diào)用 當(dāng)前模塊/view/當(dāng)前控制器/當(dāng)前方法名.html

  1. view() 傳遞一個參數(shù)之后 return view(‘a(chǎn)’) ;
image.png
  1. 傳遞一個帶路徑的參數(shù) return view(‘config/a’) ;
image.png
  1. 傳遞路徑 ./ return view(‘./a.html’) ; public/index.php入口文件 ./同級 此種寫法 必須加上后綴 .html
image.png
  1. View()助手函數(shù) 傳遞兩個參數(shù)
image.png
  1. view()助手函數(shù)的第三個參數(shù) 替換
image.png
  1. 總結(jié):使用助手函數(shù)很方便 但是有隱患 如 同名函數(shù)覆蓋 一些配置失效等等

iii. return $this->fetch() 傳遞三個參數(shù) 使用方法同上 (use think\Controller) extends Controller

image.png

iv. 使用$this->assign(‘’,’’) 傳遞變量

image.png

v. $this->display(‘串’) 與模版沒有關(guān)系

$this->assign(‘a(chǎn)’,’123’) ; $this->fetch(‘index.html’) 將變量傳遞到模版index.html

image.png

vi. $this->assign(‘a(chǎn)’,’123’) ; 也可以向$this->display(‘字符串{$a}’)中傳遞變量

二、模版變量輸出 替換 賦值

i. 經(jīng)過php編譯器解析 模版文件最終 編譯成.php文件 輸出 runtime/temp

image.png
image.png

ii. 模版語法 {} 以花括號開始結(jié)束標(biāo)記 慣例配置(thinkphp/convention.php) ---【詳情參見 配置篇】

image.png
  1. 拷貝到應(yīng)用配置文件中 測試 (conf/config.php)
image.png
  1. 配置這兩個選項的場景: 程序中使用了 Vue.js|AngularJS|Angular2...這樣的前端框架 很有可能和模版沖突 就需要修改此處的 開始 結(jié)束標(biāo)記

iii. 變量輸出---模版中{$a} 變量和開始|結(jié)束標(biāo)記之間 不能有空格{ $a }

image.png
image.png
image.png
image.png

iv. 變量賦值---向模版文件中輸出變量

  1. fetch(‘’,[])的第二個參數(shù) 數(shù)組類型
image.png
  1. assign(‘’,’’) key=>value類型
image.png
  1. view方法 繼承Controller之后 key=>value
image.png
  1. share靜態(tài)方法 ThinkPHP5.0.4 之后
image.png
  1. 上述四種方法 可同時有效

v. 替換

  1. fetch(‘’,[],[‘ABC’=>’頁面上的ABC替換成此內(nèi)容’])第三個參數(shù)

  2. 修改配置文件 thinkphp/convention.php

    // 視圖輸出字符串內(nèi)容替換

'view_replace_str' => [],

image.png

a) 在應(yīng)用配置文件中修改配置

image.png

b) 多個模塊的時候 可以使用擴展配置 分模塊配置 ---【詳情參見 配置篇】

i. 傳統(tǒng)

image.png

ii. 潮流

image.png

林子大了 鳥多了 維護起來更方便 逼格高骗卜!

thinkphp\library\think\View.php 默認(rèn)配置

image.png
  1. 優(yōu)先級 同配置優(yōu)先級 方法>控制器>擴展>應(yīng)用>慣例 【詳情參見 配置篇】 這個配置上傳下載目錄 尤其明顯

三宠页、系統(tǒng)變量原生標(biāo)簽

i. 模版中使用系統(tǒng)變量

image.png

ii. 使用系統(tǒng)變量 獲取當(dāng)前用戶 服務(wù)器信息 配置信息等等

image.png
image.png

iii. 模版文件中也可以使用 php原生標(biāo)簽

image.png

可以用但是不推薦使用 混編 不利于維護 最好前后臺代碼分離 前臺展示數(shù)據(jù) 后臺處理數(shù)據(jù)

四、變量輸出調(diào)節(jié)器

i. 在模版中使用函數(shù) md5()加密 substr() 截串 date() 格式化

image.png

ii. 數(shù)值運算 自增 自減

image.png

iii. default 定義默認(rèn)值

image.png

iv. {literal}中間的內(nèi)容不會被編譯 原樣輸出{/literal}

image.png
image.png

v. 注釋

  1. 頁面上不顯示 查看源代碼能看到

  2. {/* 模版注釋 */} 頁面不顯示 查看源代碼看不到

五寇仓、模版循環(huán)標(biāo)簽

i. volist標(biāo)簽通常用于查詢數(shù)據(jù)集(select方法)的結(jié)果輸出举户,通常模型的select方法返回的結(jié)果是一個二維數(shù)組,可以直接使用volist標(biāo)簽進(jìn)行輸出遍烦。

  1. 默認(rèn) 迭代器遍歷數(shù)組中所有數(shù)據(jù)

a) 在控制器中首先對模版賦值:

image.png

b) 在模版定義如下俭嘁,循環(huán)輸出用戶的編號和姓名:

image.png

c) name屬性:當(dāng)前模板賦值的變量名稱,

Id:表示當(dāng)前的循環(huán)變量服猪,可以隨意指定 v|k|data...

  1. 查詢結(jié)果中的部分?jǐn)?shù)據(jù)供填,

a) 輸出5~15條記錄

image.png

b) 輸出偶數(shù)記錄

image.png
  1. 可傳入的參數(shù):

a) offset: offset=’5’ 從第五條記錄開始遍歷

b) length: 遍歷的長度(當(dāng)前循環(huán)的次數(shù))

c) mod: 對當(dāng)前循環(huán)次數(shù)取余

d) empty: empty=”暫時沒有數(shù)據(jù)” 支持變量輸出

e) key: 數(shù)組索引 直接使用$i|$key即可 或者指定key屬性 key=’s’ 用$s 獲取索引

ii. foreach 類似于volist 沒有太多額外屬性

  1. 最簡單
image.png
  1. 也可以用name:數(shù)據(jù)源 item:循環(huán)變量指定
image.png
  1. 直接 $key 輸出索引 或者 key=’k’ $k獲取當(dāng)前索引

iii. for循環(huán)

  1. 開始值、結(jié)束值罢猪、步進(jìn)值和循環(huán)變量都可以支持變量近她,開始值和結(jié)束值是必須,其他是可選膳帕。comparison 的默認(rèn)值是lt粘捎,name的默認(rèn)值是i,步進(jìn)值的默認(rèn)值是1
image.png
image.png
  1. 解析之后
image.png

六危彩、比較標(biāo)簽

i. eq|equal|nequal|notequal 相等|不等

image.png

ii. gt|lt 大于|小于

image.png

iii. egt|elt 大于等于|小于等于同理

iv. 以上比較是變量(name=’X’) 和一個數(shù)值的比較 變量和變量的比較 value=”$b” 其他同理

image.png

七攒磨、條件判斷標(biāo)簽

i. Switch標(biāo)簽

  1. 語法:
image.png
  1. 如:
image.png
  1. name:可以使用函數(shù)以及系統(tǒng)變量 name=”Think.get.sid|abs”

case的value屬性支持多個條件判斷 |分割

{case value=”gif|png|jpg”}圖片格式{/case}

也可以使用變量 是用變量不支持多個條件判斷

默認(rèn)case會自動添加break 如果不要break

image.png
  1. 簡單用法:
image.png

ii. if標(biāo)簽

  1. 語法:
image.png
  1. condotion屬性:

a) 使用php代碼

condition="strtoupper($user['name']) neq 'THINKPHP'"

b) 支持點|對象語法

condition="$user.name neq 'ThinkPHP'"

condition="$user:name neq 'ThinkPHP'"

c) 簡單用法

image.png

d) 三種寫法 結(jié)果是一樣的

image.png

iii. in | notin |between |notbetween 判斷變量是否在某個范圍

  1. Value可用變量 $range可以是數(shù)組 也可以是以逗號分割的字符串 value也可以是系統(tǒng)變量
image.png
image.png
  1. Between同理 value代表區(qū)間 傳入兩個值,(系統(tǒng))變量|數(shù)組
image.png

iv. range

  1. 語法:
image.png
  1. 其中type屬性的值可以用in/notin/between/notbetween,其它屬性的用法和IN或者BETWEEN一致恬砂。

v. Defined常量是否定義

  1. 語法:
image.png
  1. name:屬性值 嚴(yán)格大小寫

八咧纠、模版的布局 包含和繼承

i. 包含 模版引入 include

image.png

ii. 繼承

  1. 定義base.html 作為父模版(基板)文件

  2. 其他模版文件繼承

image.png
  1. 在基板文件中 刨坑
image.png
  1. 在其他 繼承基板的文件中 填土
image.png
  1. 坑可以有多個 但是給坑起的名字不能一樣 否則就填錯土了

  2. 填坑的時候 可以在基板的基礎(chǔ)上填(繼承基板坑里面的內(nèi)容)

{block} 基板這個坑里面的東西

image.png

iii. 布局 layout

  1. 應(yīng)用配置 conf/config.php 模版配置'template' => [] ;里面新增配置
image.png
  1. 開啟layout之后 fetch()默認(rèn)查找的是 view/layout.html (文件名對應(yīng) layout_name)
image.png
  1. 定義base.html(基板文件) --替換內(nèi)容的地方 只挖了一個坑
image.png
  1. 其他模版文件 不需要繼承直接輸出 替換的就是{CONTENT}的內(nèi)容 填坑
image.png
  1. 想挖更多的坑 在layout.html中{$a} {$b}變量的形式接收

  2. 在其他模版文件中 $this->assign(‘a(chǎn)’,’XXX’) ; $this->assign(‘b’,’XXX’);即可

iv. 什么情況下用繼承|布局 視情況而定吧

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蓬痒,一起剝皮案震驚了整個濱河市泻骤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌梧奢,老刑警劉巖狱掂,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異亲轨,居然都是意外死亡趋惨,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進(jìn)店門惦蚊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來器虾,“玉大人讯嫂,你說我怎么就攤上這事≌咨常” “怎么了欧芽?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長葛圃。 經(jīng)常有香客問我千扔,道長,這世上最難降的妖魔是什么库正? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任曲楚,我火速辦了婚禮,結(jié)果婚禮上褥符,老公的妹妹穿的比我還像新娘龙誊。我一直安慰自己,他們只是感情好属瓣,可當(dāng)我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布载迄。 她就那樣靜靜地躺著,像睡著了一般抡蛙。 火紅的嫁衣襯著肌膚如雪护昧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天粗截,我揣著相機與錄音惋耙,去河邊找鬼。 笑死熊昌,一個胖子當(dāng)著我的面吹牛绽榛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播婿屹,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼灭美,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了昂利?” 一聲冷哼從身側(cè)響起届腐,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蜂奸,沒想到半個月后犁苏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡扩所,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年围详,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片祖屏。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡助赞,死狀恐怖买羞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情雹食,我是刑警寧澤哩都,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站婉徘,受9級特大地震影響漠嵌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜盖呼,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一儒鹿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧几晤,春花似錦约炎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至憾朴,卻和暖如春狸捕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背众雷。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工灸拍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人砾省。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓鸡岗,卻偏偏與公主長得像,于是被迫代替她去往敵國和親编兄。 傳聞我的和親對象是個殘疾皇子轩性,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 作者:陳中舒時間:2017年5月11日 ThinkPHP 5.0的安裝 方式一:官網(wǎng)下載 官網(wǎng)地址:http://...
    忠叔閱讀 6,927評論 3 54
  • ThinkPHP5 ---基礎(chǔ)篇(配置) 一、慣例配置 i. 定義配置文件 public/index.php | ...
    donglingjiu閱讀 2,545評論 0 1
  • 用感情做事的人狠鸳,經(jīng)常會受到感情的傷害揣苏,甚至?xí)l(fā)抱怨、嗔恨碰煌、憤怒等等不良的心理反應(yīng)舒岸。為什么用感情做事情绅作,會受到感情...
    一個人的獨行閱讀 452評論 0 1
  • 點擊關(guān)注文集目錄 15.危險逃亡路(2):兩個大忽悠 和少有俠名的杜弘相比芦圾,吳辯的條件確實差了一大截,杜弘...
    赫連伯伯閱讀 617評論 0 5
  • 1俄认,今天上午又參加了讀書會个少,我清晰的能感覺到洪乍,當(dāng)與人面對面交流溝通的時候,我的狀態(tài)是十分興奮的夜焦。不論是插科打諢還是...
    Woody是多么的寂寞閱讀 169評論 0 0