🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 创建插件控制器文件Controller ### 说明: 插件控制器创建和模块控制器类似,除了入口控制器以为,还分为前台和后台控制器。分别对应的目录是controller和admin目录。 #### 一.后台控制器 存放目录在插件的admin目录下。代码示例: ~~~ <?php // 插件的后台控制器 namespace plugins\插件名\admin; use app\home\admin\Plugin; class 控制器名 extends Plugin { protected $plugin_name = 'DemoExample';//定义插件名称 function _initialize() { parent::_initialize(); } //方法 public function index(){ } ~~~ 从上面代码可以看出,需要注意几点: 1.插件的后台控制器必须放置在插件的admin目录。 2.必须继承`app\home\admin\Plugin`类。 3.注意命名空间问题,是引用插件的类,还是其它模块的类。插件里的控制器可以调用任意模块儿的类。 #### 二.前台控制器 下面是地区插件的控制器文件。 ~~~ <?php // 地区接口 // +---------------------------------------------------------------------- // | Copyright (c) 2017-2018 http://www.eacoo123.com, All rights reserved. // +---------------------------------------------------------------------- // | [EacooPHP] 并不是自由软件,可免费使用,未经许可不能去掉EacooPHP相关版权。 // | 禁止在EacooPHP整体或任何部分基础上发展任何派生、修改或第三方版本用于重新分发 // +---------------------------------------------------------------------- // | Author: 心云间、凝听 <981248356@qq.com> // +---------------------------------------------------------------------- namespace plugins\regionManager\controller; use app\home\controller\Plugin;//注意继承的命名空间 use plugins\regionManager\model\Region as RegionModel; class Api extends Plugin { /** * 获取地区JSON * @param integer $parent_id [description] * @return [type] [description] * @date 2017-10-04 * @author 心云间、凝听 <981248356@qq.com> */ public function getRegionJson($parent_id=0){ $result = RegionModel::where(['parent_id'=>$parent_id])->column('region_name','region_id'); return json($result); } /* * 获取地区Select */ public function getRegionSelect($parent_id=0){ $data = RegionModel::all(['parent_id'=>$parent_id]); $html = ''; if($data){ foreach($data as $val){ $html .= "<option value='{$val['region_id']}'>{$val['region_name']}</option>"; } } echo $html; } } ~~~ 同意需要注意几点: 1.插件的前台控制器必须放置在插件的controller目录。 2.必须继承`app\home\controller\Plugin;` 3.命名空间问题。