Widget如何在ThinkPHP3.1中使用-創(chuàng)新互聯(lián)

這期內容當中小編將會給大家?guī)碛嘘PWidget如何在ThinkPHP3.1中使用,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

目前創(chuàng)新互聯(lián)已為上千家的企業(yè)提供了網站建設、域名、網頁空間、成都網站托管、企業(yè)網站設計、平山網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

由于ThinkPHP3.1增加了對多層MVC的支持,因此3.1版本可以支持多層的控制器功能,由此我們就可以在控制器層再增加一層:Widget層。

首先,還是在項目的Lib目錄下面創(chuàng)建一個Widget目錄,并且創(chuàng)建一個TestWidget類(Lib/Widget/TestWidget.class.php)如下:

class TestWidget extends Action{
  public function hello($name=''){
    echo ("hello,".$name."!");
  }
 }

我們看到TestWidget和之前的區(qū)別是沒有繼承Widget類,而是直接繼承了Action類,這就代表著在TestWidget中可以直接調用Action的方法,包括對模板的渲染輸出。

定義完成后,我們怎么調用這個Widget呢?用W方法肯定行不通了,這次需要R方法出場了。
R方法的作用是遠程調用模塊的操作,但是3.1賦予了它新的作用,可以支持調用所有控制器層的操作方法,所以,我們可以在模板中這樣來調用Widget:

{:R('Test/hello',array('ThinkPHP'),'Widget')}

就可以實現(xiàn)在頁面中的某個區(qū)域輸出:

hello,ThinkPHP!

由于除了Action控制器之外的其他控制器層是無法直接通過URL訪問的,所以這個Widget方法只能通過R方法在內部調用才可以。

你可以在TestWidget類中調用Model來輸出其他數據,如果需要渲染自身的模板,則可以直接調用display方法就行了。

class TestWidget extends Action{
  public function hello($name=''){
    $this->assign('name',$name);
    $this->display('Test:hello');
  }
 }

我們在項目的Tpl/Test/ 目錄下面創(chuàng)建一個hello(Tpl/Test/hello.html)模板文件,添加輸出:

Hello,{$name}!

如果你希望和之前的Widget一樣,把模板文件放到當前目錄下面,則可以使用:

class TestWidget extends Action{
  public function hello($name=''){
    $this->assign('name',$name);
    $this->display(dirname(__FILE__).'/Test/hello.html');
  }
 }

這個時候,你就可以把剛才定義的hello模板文件放入Widget/Test/ 目錄下面了。

上述就是小編為大家分享的Widget如何在ThinkPHP3.1中使用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享文章:Widget如何在ThinkPHP3.1中使用-創(chuàng)新互聯(lián)
文章地址:http://muchs.cn/article48/ddcjep.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供Google、網站設計公司、定制網站、關鍵詞優(yōu)化、App開發(fā)、手機網站建設

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網站建設網站維護公司