欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ThinkPHP3.1的Widget新用法

 更新時間:2014年06月19日 12:03:49   投稿:shichen2014  
這篇文章主要介紹了ThinkPHP3.1的Widget新用法,需要的朋友可以參考下

ThinkPHP3.0版本的Widget對Action和View的支持力度是相對不夠的,僅能夠?qū)崿F(xiàn)基本的模板渲染輸出。而3.1版本的發(fā)布帶來的多層MVC功能,給我們實現(xiàn)Widget的方式帶來了新的思路,且看是如何實現(xiàn)吧。

由于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中可以直接調(diào)用Action的方法,包括對模板的渲染輸出。

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

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

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

hello,ThinkPHP!

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

你可以在TestWidget類中調(diào)用Model來輸出其他數(shù)據(jù),如果需要渲染自身的模板,則可以直接調(diào)用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/ 目錄下面了。

相關(guān)文章

  • 在laravel中實現(xiàn)事務(wù)回滾的方法

    在laravel中實現(xiàn)事務(wù)回滾的方法

    今天小編就為大家分享一篇在laravel中實現(xiàn)事務(wù)回滾的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • CodeIgniter集成smarty的方法詳解

    CodeIgniter集成smarty的方法詳解

    這篇文章主要介紹了CodeIgniter集成smarty的方法,結(jié)合實例形式詳細分析了CodeIgniter集成Smarty的具體步驟與相關(guān)注意事項,需要的朋友可以參考下
    2016-05-05
  • Swoole源碼中如何查詢Websocket的連接問題詳解

    Swoole源碼中如何查詢Websocket的連接問題詳解

    這篇文章主要給大家介紹了關(guān)于Swoole源碼中如何查詢Websocket的連接問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • PHP開發(fā)中常用的十個代碼樣例

    PHP開發(fā)中常用的十個代碼樣例

    本文是小編日常收集整理的有關(guān)php開發(fā)中常用的十個代碼樣例,非常不錯,特此分享供大家參考
    2016-02-02
  • laravel請求參數(shù)校驗方法

    laravel請求參數(shù)校驗方法

    今天小編就為大家分享一篇laravel請求參數(shù)校驗方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • laravel migrate初學(xué)常見錯誤的解決方法

    laravel migrate初學(xué)常見錯誤的解決方法

    之前給大家介紹了關(guān)于laravel migrate入門的基礎(chǔ),下面這篇文章主要給大家介紹了關(guān)于laravel migrate初學(xué)時常見錯誤的解決方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • TP(thinkPHP)框架多層控制器和多級控制器的使用示例

    TP(thinkPHP)框架多層控制器和多級控制器的使用示例

    這篇文章主要介紹了TP(thinkPHP)框架多層控制器和多級控制器的使用,結(jié)合實例形式分析了thinkPHP框架多層控制器和多級控制器的結(jié)構(gòu)、原理及使用方法,需要的朋友可以參考下
    2018-06-06
  • thinkPHP+LayUI 流加載實現(xiàn)功能

    thinkPHP+LayUI 流加載實現(xiàn)功能

    這篇文章主要介紹了thinkPHP+LayUI 流加載實現(xiàn)功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • ThinkPHP CURD方法之data方法詳解

    ThinkPHP CURD方法之data方法詳解

    ThinkPHP CURD方法的data方法用于設(shè)置當前要操作的數(shù)據(jù)對象的值這篇文章主要介紹了data方法的應(yīng)用,需要的朋友可以參考下
    2014-06-06
  • PHP+MYSQL實現(xiàn)用戶的增刪改查

    PHP+MYSQL實現(xiàn)用戶的增刪改查

    本文給大家分享的是使用PHP+MYSQL實現(xiàn)用戶的增刪改查功能的全部頁面代碼,非常的詳細,也很實用,適合php的初學(xué)者,有需要的小伙伴參考下。
    2015-03-03

最新評論