入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

ThinkPHP3.2中Widget实例的使用

创建时间:2015-09-29 投稿人: 浏览次数:927
Widget类的实现可以作为分层控制器的另外一个典型实例。

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

namespace HomeWidget;
class MenuWidget extends ThinkController {
    public function index(){
        echo "menuWidget";
    }
 }

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

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

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

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

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

则会输出 5:thinkphp

来一个复杂一点的例子:

namespace HomeWidget;
class MenuWidget extends ThinkController {
    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>








声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。