ThinkPHP3.2中Widget实例的使用

来源:互联网 发布:mac os 常用软件 编辑:程序博客网 时间:2024/04/30 13:01
Widget类的实现可以作为分层控制器的另外一个典型实例。

举个例子,我们在页面中实现一个分类菜单的Widget,首先我们要定义一个Widget控制器层 MenuWidget,如下:

namespace Home\Widget;class MenuWidget extends Think\Controller {    public function index(){        echo 'menuWidget';    } }

类文件位于 Home/Widget/MenuWidget.class.php。
然后,我们在需要显示分类菜单的模版中通过W方法调用这个Widget。

{~W('Menu/index')} 
执行后的输出结果是: menuWidget

如果需要在调用Widget的时候传入参数,可以这样定义:

namespace Home\Widget;class MenuWidget extends Think\Controller {    public function index($id,$name){        echo $id.':'.$name;    } }
在需要显示分类菜单的模版中添加如下的Widget调用代码如下:

{~W('Menu/index',array(5,'thinkphp'))} 

则会输出 5:thinkphp

来一个复杂一点的例子:

namespace Home\Widget;class MenuWidget extends Think\Controller {    public function index(){        $menu = M('Cate')->getField('id,title');        $this->assign('menu',$menu);        $this->display('Widget/menu');    } }
CateWiget类渲染了一个模版文件 Home/View/Widget/menu.html
在menu.html模版文件中的用法:

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








0 0
原创粉丝点击