thinkphp5.0学习(九):TP5.0视图和模板
生活随笔
收集整理的這篇文章主要介紹了
thinkphp5.0学习(九):TP5.0视图和模板
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
原文地址:http://blog.csdn.net/fight_tianer/article/details/78602711
一、視圖
1.加載頁面
1.繼承系統(tǒng)控制器類return $this->fetch(參數(shù)1,參數(shù)2,參數(shù)3,參數(shù)4);參數(shù)1(字符串):模板渲染參數(shù)2(數(shù)組):模板賦值參數(shù)3(數(shù)組):模板替換 2.使用助手函數(shù)return view();參數(shù)與fetch相同 3.使用view類(不建議使用)$view=new View();return $view->fetch();- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
2.模板賦值
1.控制器類中的assign方法$this->assign('name',$name);$this->assign('city',$city);$this->assign(['name'=>$name,'city'=>$city]);return view(); 2.通過fetch方法return $this->fetch('',['name'=>$name,'city'=>$city]); 3.助手函數(shù)return view('',['name'=>$name,'city'=>$city]); 4.對象賦值$this->view->name="甜甜";$this->view->city="太原";return view();- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
3.模板替換
1.配置文件更改(全局替換,所有頁面中都被替換)(config文件中)// 視圖輸出字符串內(nèi)容替換// 只有頁面被替換,也就是在php頁面中獲取不到__HOMES__'view_replace_str' => ['__HOMES__'=>'/static/home/public'], 2.部分替換1.fetch方法// fetch參數(shù):頁面,變量分配,視圖輸出字符串內(nèi)容替換return $this->fetch('',[],['__HOMES__'=>'/static/home/public']);2.助手函數(shù)return view('',[],['__HOMES__'=>'/static/home/public']);- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
4.模板渲染
1.默認(rèn)加載當(dāng)前模塊,當(dāng)前控制器,當(dāng)前方法對應(yīng)的頁面return $this->fetch(); 2.指定加載的頁面// 加載當(dāng)前模塊,當(dāng)前控制器下,用戶定義的頁面return $this->fetch('jiazai');// 加載當(dāng)前模塊,user控制器下 jiazai頁面return $this->fetch('user/jiazai');- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
二、模板
1.模板標(biāo)簽
1.普通標(biāo)簽(刪除了runtime下的temp下的緩存文件再測試)
// 模板引擎普通標(biāo)簽開始標(biāo)記'tpl_begin' => '{',// 模板引擎普通標(biāo)簽結(jié)束標(biāo)記'tpl_end' => '}',- 1
- 2
- 3
- 4
2.標(biāo)簽庫標(biāo)簽(刪除了runtime下的temp下的緩存文件再測試)
// 標(biāo)簽庫標(biāo)簽開始標(biāo)記'taglib_begin' => '}',// 標(biāo)簽庫標(biāo)簽結(jié)束標(biāo)記'taglib_end' => '{', {for start="1" end="10"} {$i} {/for}- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
2.輸出變量
1.字符串
$this->assign("str","甜甜"); <h2>{$str}</h2>- 1
- 2
2.數(shù)組
$data=['name'=>'張三','age'=>18, 'sex'=>'男' ]; $this->assign("data",$data); <h2>{$data['name']}<h2> <h2>{$data['age']}<h2> <h2>{$data['sex']}<h2>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
3.使用函數(shù)
//1.使用豎線,參數(shù)寫在等于號后面{$data.name|md5} <?php echo (md5($data['name'])); ?> {$time|date="y-m-d H:i:s",###} <?php echo (date("y-m-d H:i:s",$time)); ?> {$name|md5|strtoupper|substr=0,10} <?php echo (substr(strtoupper(md5($name)),0,10)); ?> //2.冒號開始 {:md5($pass)} {:date('Y-m-d H:i:s',$time)}- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
4.默認(rèn)值
{$user.nickname|default="這家伙很懶,什么也沒留下"}- 1
5.三元運算符
{$status? '正常' : '錯誤'} {$status>2? '正常' : '錯誤'}- 1
- 2
6.算數(shù)運算符
{$a}+{$b}={$a+$b} {$a}-{$b}={$a-$b} {$a}*{$b}={$a*$b} {$a}/{$b}={$a/$b} {$a}%{$b}={$a%$b} {$a++} {$b--}- 1
- 2
- 3
- 4
- 5
- 6
- 7
在使用運算符的時候,不再支持常規(guī)函數(shù)用法,例如:
{$user.score+10} //正確的 {$user['score']+10} //正確的 {$user['score']*$user['level']} //正確的 {$user['score']|myFun*10} //錯誤的 {$user['score']+myFun($user['level'])} //正確的- 1
- 2
- 3
- 4
- 5
7.原樣輸出
{literal}Hello,{$name}! {/literal}- 1
- 2
- 3
8.系統(tǒng)變量
1.系統(tǒng)變量($Think開頭)支持輸出 $_SERVER、$_ENV、 $_POST、 $_GET、 $_REQUEST、$_SESSION和 $_COOKIE變量。 <h2>{$_GET['id']}</h2> <h2>{$Think.get.id}</h2> <h2>{$_SERVER['HTTP_HOST']}</h2> <h2>{$_SERVER.HTTP_HOST}</h2> <h2>{$Think.SERVER.HTTP_HOST}</h2> 2.常量輸出(常量詳見附錄常量參考) <h2>{$Think.const.app_path}</h2> <h2>{$Think.const.ds}</h2> <h2>{$Think.const.think_path}</h2> <h2>{$Think.const.is_win}</h2> <h2>{$Think.const.THINK_VERSION}</h2> 3.配置文件輸出(查看配置文件) <h2>{$Think.config.app_namespace}</h2> <h2>{$Think.config.default_lang}</h2>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
9.請求參數(shù)?
支持直接使用request對象
- 1
- 2
以$Request.開頭的變量輸出會認(rèn)為是系統(tǒng)Request請求對象的參數(shù)輸出。?
支持Request類的大部分方法,但只支持方法的第一個參數(shù)。
10.模板注釋
{/* 注釋內(nèi)容 */ } 或 {// 注釋內(nèi)容 } {/* 這是模板 注釋內(nèi)容*/ }- 1
- 2
- 3
- 4
11.頁面包含(可以包含多次)
{include file='Public/header'}<div>body</div> {include file='Public/footer'}- 1
- 2
- 3
12.模板布局
1.在視圖目錄下新建文件layout.html(app\admin\view) 2.在layout頁面中將所有的公共頁面保留,非公共頁面使用{__CONTENT__}替代(__CONTENT__只能存在一個) 3.頁面中引入模板布局{layout name="layout" /}+非公共區(qū)域內(nèi)容- 1
- 2
- 3
- 4
13.模板繼承
1.在視圖目錄下新建base.html 2.在base.html中對頁面進(jìn)行分割<!DOCTYPE html><html><head><title></title></head><body><div>{block name="nav"}{/block}</div><div>{block name="menu"}{/block}{block name="main"}{/block}</div><div>{block name="footer"}{/block}</div></body></html> 3.使用繼承{extend name="base" /}{block name="nav"}{include file="public/header" /}{/block}{block name="menu"}{include file="public/menu" /}{/block}{block name="main"}{include file="public/content" /}{/block}{block name="footer"}{include file="public/footer" /}{/block}- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
14.內(nèi)置標(biāo)簽
1.volist循環(huán){volist name="data" id="val" offset="5" length="3"} <p>{$key}:{$val.id}:{$val.name}</p> {/volist} //區(qū)分奇數(shù)偶數(shù) {volist name="data" id="val" mod="2" empty="暫時沒有數(shù)據(jù)"} {eq name="mod" value="0"} <p style="color: red;">{$key}:{$val.id}:{$val.name}</p> {/eq} {eq name="mod" value="1"} <p>{$key}:{$val.id}:{$val.name}</p> {/eq} {/volist} name 需要遍歷的數(shù)據(jù) id 類似于foreach中的value offset 截取數(shù)據(jù)的起始位置 length 截取數(shù)據(jù)的個數(shù) mod 奇數(shù)偶數(shù) empty 數(shù)據(jù)為空時使用 key 編號 2.foreach循環(huán) {foreach name="data" item="val"} <p>{$key}{$val.id}{$val.name}</p> {/foreach} name 需要遍歷的數(shù)據(jù) item 類似于foreach中的value key 類似于foreach中的key 3.for循環(huán) start 開始值 end 結(jié)束值 comparison 比較條件(參看下表),默認(rèn)lt step 步數(shù) name 循環(huán)變量(默認(rèn)i) //正序 {for start="0" end="10" comparison="elt" step="2" name="i"} {$i} {/for} //倒敘 {for start="10" end="0" comparison="gt" step="-1" name="i"} {$i} {/for}- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
| eq或者 equal | 等于 |
| neq 或者notequal | 不等于 |
| gt | 大于 |
| egt | 大于等于 |
| lt | 小于 |
| elt | 小于等于 |
| heq | 恒等于 |
| nheq | 不恒等于 |
轉(zhuǎn)載于:https://www.cnblogs.com/ZhYQ-Note/p/8626135.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的thinkphp5.0学习(九):TP5.0视图和模板的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: grep 正则匹配
- 下一篇: PHP学习笔记--抽象类和抽象方法的应用