新聞中心
無憂主機淺談ThinkPHP的模板輸出功能
作者 / 無憂主機 時間 2015-01-17 09:43:16
Thinkphp是一款開源php框架,是為了敏捷web開發(fā)和簡化企業(yè)應(yīng)用開發(fā)而誕生的,無憂主機php虛擬主機也是完美支持的。在Thinkphp中的每一個xxxAction.class.php文件就代表著一個相應(yīng)的應(yīng)用模塊,這個Action中的每一個 function就代表著一個操作,操作可以分為有輸出到模板的操作和只具執(zhí)行不需要輸出的操作。 首先打開Myapp/Lib/Action/IndexAction.class.php文件,可以看到里面的基礎(chǔ)代碼:
class IndexAction extends Action{ public function index(){ } }在這里,小編要指出以下幾點: 在ThinkPHP的開發(fā)中,要增加一個應(yīng)用模塊,就要在Action文件夾里建立一個類,類的文件命名格式是“模塊名稱+Action.class.php”。例如小編這里的應(yīng)用模塊是Index,所以定義文件名為IndexAction.class.php。 應(yīng)用模塊類的定義要繼承框架的Action類。要為這個應(yīng)用模塊添加一個操作,則定義一個以此操作為命名的function.例如上面的index操作。 通常一個應(yīng)用模塊中,會有若干操作(function)需要有與用戶交互的頁面,這就需要用到模板輸出,ThinkPHP本身已內(nèi)置了一套具有ThinkPHP特色的,很強大易擴展但應(yīng)用非常方便兼簡單的模板引擎。 在應(yīng)有模塊中,如果某個操作是需要頁面顯示的,只要對應(yīng)在Myapp/Tpl/default/里建立一個文件夾,文件夾以應(yīng)用模塊的名稱來命名,然后在這個文件夾下,建立一個以這個function名稱來命名的html文件,就可以在這個方法中使用$this->display()方法來直接調(diào)用該模板。(當然也可以調(diào)用其它模塊下的其它模板或顯式指定模板文件位置和名稱,由于是循序漸進式的學(xué)習(xí),就讓我們先忽略吧)了解這些理論后,我們先簡單實操一下這些知識。 (1)在Myapp/Tpl/default/下建立一個文件夾,根據(jù)應(yīng)用模塊的名稱,小編將這個文件夾命名為Index (2)在Myapp/Tpl/default/Index/下建立一個html文件,根據(jù)操作名稱,我們命名該文件為index.html (3)打開Myapp/Lib/Action/IndexAction.class.php文件,修改代碼為:
<?php class IndexAction extends Action{ public function index(){ $value = 'hello,ThinkPHP'; $this->assign('name',$value); $this->display(); } } ?>在Action類里面使用 assign方法對模板變量賦值,無論何種變量類型都統(tǒng)一使用assign賦值。 $this->assign('name',$value); 下面的寫法是等效的 $this->name = $value ; 模板變量賦值后就需要調(diào)用模板文件來輸出相關(guān)的變量,模板調(diào)用通過display方法來實現(xiàn) $this->display(); 打開Myapp/Tpl/default/Index/index.html文件,代碼為:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>{$name}</title> </head> <body>測試輸出: {$name} </body> </html> 此處注意:模板變量使用{$變量名稱}這種標簽進行輸出。 不同的模板變量類型,使用不同的標簽,標簽可以自行另外定義,暫且不理會。 打開瀏覽器輸入地址:<http://127.0.0.1/>,我們可以看到,定義的模板變量已經(jīng)輸出來了。 附加補充知識: 1 如果要同時輸出多個模板變量,可以使用下面的方式:
$array = array(); $array['name'] = 'thinkphp'; $array['email'] = '123456@vip.qq.com'; $array['phone'] = '123456'; $this->assign($array);這樣,就可以在模板文件中同時輸出name、email和phone三個變量。 2 我們使用上面的變量定義,將整個數(shù)組定義為一個模板變量來輸出
$array = array(); $array['name'] = 'thinkphp'; $array['email'] = '123456@vip.qq.com'; $array['phone'] = '123456'; $this->assign('array',$array); $this->display();在html中,要輸出$array['name']的值,代碼是 {$array.name} 或 {$array['name']} 3 將這個數(shù)組循環(huán)輸出 (1)IndexAction.class.php中代碼更改如下
<?php class IndexAction extends Action{ public function index(){ $array = array(); $array['name'] = 'thinkphp'; $array['email'] = '123456@vip.qq.com; $array['phone'] = '123456'; $value = 'hello,ThinkPHP'; $this->assign('array',$array); $this->assign('name',$value); $this->display(); } } ?>(2)將Myapp/Tpl/default/Index/index.html代碼更改如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>{$name}</title> </head> <body> <iterate name="array" id="vo"> {$vo}<br /> </iterate> </body> </html>注意:name='array'是指要循環(huán)的模板變量是array,id='vo'是指這個數(shù)據(jù)在模板輸出時所使用的名稱 希望可以幫助到各位站長朋友! 無憂主機相關(guān)文章推薦閱讀: 多說評論插件怎么在THINKPHP上實現(xiàn) THINKPHP程序如何自定義404錯誤頁面 THINKPHP登入后臺出現(xiàn)“系統(tǒng)發(fā)生錯誤” THINKPHP搭建的網(wǎng)站搬家后遇到“您瀏覽的頁面暫時發(fā)生了錯誤!”
本文地址:http://www.gle-technology.com/thinkphp/18324.html