温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

yii如何将数据操作放在widget

发布时间:2021-01-14 11:31:19 来源:亿速云 阅读:112 作者:小新 栏目:编程语言

小编给大家分享一下yii如何将数据操作放在widget,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

有的人会选择制作多个layout,在不同地方切换layout,但这样代码的重用性没有发挥出来,而且不够灵活。yii里面有一个很方便的机制来解决这一问题,那就是 —— widget,小部件是也。                    

yii里面有一些自带的widget,他们放在web.widgets和zii.widgets下面,比如有我们常用的CLinkPager、CMenu大家可以看一看。

要自己扩展widget,根据手册上的介绍,需要继承CWidget,并且覆盖run()方法。我们来开始扩展第一个widget:

创建widget存放目录: 在application(默认是protected)下创建目录widgets,用来存放widget类,然后创建widgets.views目录,用来存放widget的视图文件。

创建widget类: 在application.widgets下面创建一个名为TestWidget.php的文件,命名没太大讲究,保证唯一性,见名知意即可。在里面加入以下代码:

class TestWidget extends CWidget
{
    public $datetime = ''; 

    public function run()
    {
        $datetime = empty($this->datetime) ? date('Y-m-d H:i:s') : $this->datetime;
        $this->render('test', array('datetime'=>$datetime));
    }
}

解释一下这段代码:按照规则,类名TestWidget与文件名TestWidget.php相同,类TestWidget需要继承CWidget,然后重写(rewrite)run()方法,该方法会在widget被渲染是调用。

在run()方法里调用$this->render()方法渲染test视图,将变量$datetime传递到视图(参见控制器的视图渲染)。可以在里面查询数据库,进行各种操作,将运算的结果传入视图。

以上是“yii如何将数据操作放在widget”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI