多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# :-: 注意事项说明 ***** #### 1 所有租户的应用在开发的时候,都要继承buwang\\base\\MemberBaseController.php #### 2 租户应用的API接口都要继承buwang\\base\\Api.php #### 3 服务端渲染SSR 公众号模板渲染如果需要自动授权登录 ,请继承buwang\\base\\Official.php SESSION配置REDIS ~~~ return [ // session name 'name' => 'PHPSESSID', // SESSION_ID的提交变量,解决flash上传跨域 'var_session_id' => '', // 驱动方式 支持file cache 'type' => 'cache', // 存储连接标识 当type使用cache的时候有效 可设置redis 'store' => redis, // 过期时间 'expire' => 3600, // 前缀 'prefix' => 'bw_', ]; ~~~ #### 4 在类的\_\_constuct()和initialize()方法中不能使用JsonTrait和JumpTrait中的方法,只能throw抛出异常才可以起作用; #### 5 所有的SAAS框架控制器,需要继承类buwang\base\Manage,里面有各种必须的方法封装,如前后端分离查询参数解析方法 ~~~ /** * 构建请求参数 * @param array $excludeFields 忽略构建搜索的字段 * @return array */ protected function buildTableParames($excludeFields = []) { $get = $this->request->get('', null, null); $page = isset($get['page']) && !empty($get['page']) ? $get['page'] : 1; $limit = isset($get['limit']) && !empty($get['limit']) ? $get['limit'] : 15; $filters = isset($get['filter']) && !empty($get['filter']) ? $get['filter'] : '{}'; $ops = isset($get['op']) && !empty($get['op']) ? $get['op'] : '{}'; // json转数组 $filters = json_decode($filters, true); $ops = json_decode($ops, true); $where = []; $excludes = []; // 判断是否关联查询 $tableName = $this->getTableName(); foreach ($filters as $key => $val) { if (in_array($key, $excludeFields)) { $excludes[$key] = $val; continue; } $op = isset($ops[$key]) && !empty($ops[$key]) ? $ops[$key] : '%*%'; if ($this->relationSearch && count(explode('.', $key)) == 1) { $key = "{$tableName}.{$key}"; } switch (strtolower($op)) { case '=': $where[] = [$key, '=', $val]; break; case 'like': case '%*%': $where[] = [$key, 'LIKE', "%{$val}%"]; break; case '*%': $where[] = [$key, 'LIKE', "{$val}%"]; break; case '%*': $where[] = [$key, 'LIKE', "%{$val}"]; break; case 'range': [$beginTime, $endTime] = explode(' - ', $val); $where[] = [$key, '>=', strtotime($beginTime)]; $where[] = [$key, '<=', strtotime($endTime)]; break; case 'between': [$begin, $end] = explode(' - ', $val); $where[] = [$key, '>=', $begin]; $where[] = [$key, '<=', $end]; break; case 'in': //增加in类型查询 $where[] = [$key, 'IN', "{$val}"]; break; default: $where[] = [$key, $op, "%{$val}"]; } } return [$page, $limit, $where, $excludes]; } /** * 下拉选择列表 * @return \think\Response */ public function selectList() { $fields = input('selectFieds'); $data = $this->model ->where($this->selectWhere) ->field($fields) ->select(); return $this->success("获取成功", $data); } ~~~ #### 6