91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Widget如何在ThinkPHP3.1中使用

發布時間:2020-12-24 16:42:07 來源:億速云 閱讀:176 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關Widget如何在ThinkPHP3.1中使用,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

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

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

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

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

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

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

就可以實現在頁面中的某個區域輸出:

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/ 目錄下面創建一個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中使用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

郧西县| 和林格尔县| 抚顺县| 杭州市| 忻州市| 锡林郭勒盟| 清新县| 甘德县| 安阳县| 丹凤县| 凤阳县| 陆良县| 中超| 柘荣县| 昆明市| 峡江县| 巫溪县| 岗巴县| 西青区| 阳城县| 芜湖市| 汶上县| 海盐县| 莆田市| 通化市| 新平| 玉树县| 大新县| 洪江市| 玉溪市| 灌阳县| 河源市| 三门县| 昌都县| 黎川县| 碌曲县| 济源市| 唐山市| 延津县| 海丰县| 栾城县|