最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

yii将数据操作放在widget合理吗

来源:懂视网 责编:小采 时间:2020-11-03 18:22:58
文档

yii将数据操作放在widget合理吗

yii将数据操作放在widget合理吗:有的人会选择制作多个layout,在不同地方切换layout,但这样代码的重用性没有发挥出来,而且不够灵活。yii里面有一个很方便的机制来解决这一问题,那就是 —— widget,小部件是也。 (推荐学习:yii框架)yii里面有一些自带的widget,他们放在web.
推荐度:
导读yii将数据操作放在widget合理吗:有的人会选择制作多个layout,在不同地方切换layout,但这样代码的重用性没有发挥出来,而且不够灵活。yii里面有一个很方便的机制来解决这一问题,那就是 —— widget,小部件是也。 (推荐学习:yii框架)yii里面有一些自带的widget,他们放在web.

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

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合理吗

yii将数据操作放在widget合理吗:有的人会选择制作多个layout,在不同地方切换layout,但这样代码的重用性没有发挥出来,而且不够灵活。yii里面有一个很方便的机制来解决这一问题,那就是 —— widget,小部件是也。 (推荐学习:yii框架)yii里面有一些自带的widget,他们放在web.
推荐度:
标签: 操作 数据 Yii
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top