小部件是Yii的一个非常实用的功能,各类第三方小部件可以使得整个开发变得非常的愉快,那么如果想自己开发一个小部件我们应该怎么做呢,接下来我们就讲讲如何自定义小部件。我们以博客的侧边栏为例进行讲解。
1.首先在common的widgets中创建SideBarWidget文件夹用来存放所有widget的各种文件。
2.创建一个SideBar类继承自yii\base\Widget。类中有两个重要的方法一个是init() 一个是run()相信不用我说大家也知道这两个方法是干嘛的吧。
3.创建Widget视图。一般来讲Widget可以使用两种方式展示内容。
一种是直接在用到的view里面写,形式如下
<?php SideBar::begin(); ?> 具体的内容放里面 可以是任何html标签 <?php SideBar::end(); ?>
第二种是直接为小部件写一个单独的view,我们这里在common\widgets\SideBarWidget\views中创建一个view.php文件,然后再SideBar.php中修改run
public function run() { ...获取数据用于显示 return $this->render('view', [ 'category'=>$cats, 'tags'=>$tags, 'posts'=>$posts, ]); }<span class="redactor-invisible-space"> </span>
在使用的地方只需要优雅写上如下代码就可以欢乐的展示了
<?= SideBar::widget() ?>
最终显示效果如下