1. 程式人生 > 程式設計 >Thinkphp 框架擴充套件之Widget擴充套件實現方法分析

Thinkphp 框架擴充套件之Widget擴充套件實現方法分析

本文例項講述了Thinkphp 框架擴充套件之Widget擴充套件實現方法。分享給大家供大家參考,具體如下:

Widget擴充套件

Widget擴充套件一般用於頁面元件的擴充套件。

舉個例子,我們在頁面中實現一個分類顯示的Widget,首先我們要定義一個Widget控制器層 CateWidget,如下:

namespace Home\Widget;
use Think\Controller;
class CateWidget extends Controller {
  public function menu(){
    echo 'menuWidget';
  }
}

然後,我們在模版中通過W方法呼叫這個Widget。

{:W('Cate/Menu')}

執行後的輸出結果是:

menuWidget

傳入引數

如果需要在呼叫Widget的時候 使用引數,可以這樣定義:

namespace Home\Widget;
use Think\Controller;
class CateWidget extends Controller {
  public function menu($id,$name){
    echo $id.':'.$name;
  }
}

模版中的引數呼叫,使用:

{:W('Cate/Menu',array(5,'thinkphp'))}

傳入的引數是一個數組,順序對應了menu方法定義的引數順序。

則會輸出

5:thinkphp

模板支援

Widget可以支援使用獨立的模板,例如:

namespace Home\Widget;
use Think\Controller;
class CateWidget extends Controller {
  public function menu(){
    $menu = M('Cate')->getField('id,title');
    $this->assign('menu',$menu);
    $this->display('Cate:menu');
  }
}

CateWiget類渲染了一個模版檔案 View/Cate/menu.html。 在menu.html模版檔案中的用法:

<foreach name="menu" item="title">
{$key}:{$title}
</foreach>

更多關於thinkPHP相關內容感興趣的讀者可檢視本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結》、《ThinkPHP常用方法總結》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術總結》。

希望本文所述對大家基於ThinkPHP框架的PHP程式設計有所幫助。