YII2.0之窗体小部件
在工作中用到YII2框架,之前对Yii的Widgets这个不太理解,也就没有用上。最近在查看YII2的英文指南的时候,终于弄明白了是怎么一回事。
举个简单的例子,如果在做后台开发的时候,大部分页面都需要用到一个可选择的列表(<select>),那么我们可以把它做成窗体小部件。
具体看下面代码:
<?php/***CreatedbyPhpStorm.*User:Administrator*Date:2017/2/14*Time:18:01*/namespacecommon\widgets;usecommon\service\GameService;useyii\base\Widget;useyii\helpers\ArrayHelper;classGameWidgetextendsWidget{private$list;private$html;publicfunctioninit(){parent::init();$this->list=GameService::gameList(['id','gamename']);$array=ArrayHelper::toArray($this->list);$this->html='<selectdata-am-selected="{btnSize:"sm"}">';foreach($arrayas$key=>$val){$this->html.='<optionvalue="'.$val['id'].'">'.$val['gamename'].'</option>';}$this->html.='</select>';}publicfunctionrun(){return$this->html;}}
新建一个类,并且继承自yii\base\Widget。覆盖init()和run()方法。init里面写自己的逻辑,run里面返回需要在页面上显示的内容。
下面在看php模板页面上的调用方法
<?phpusecommon\widgets\GameWidget;?><?phpechoGameWidget::widget()?>
引入自己编写的Widget,然后调用widget()方法。
结果图
这里以后在其它页面如果还需要这个部件,只接调用就可以了。不需要写多的代码。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。