最近开发的移动 App 服务端 api 选用ThinkPHP来写,现需要针对不同用户进行获取数据时的权限控制,其中用户的授权信息由公司的 ERP 系统来维护,这里记录下实现过程。权限数据结构用到的相关表有:功能权限、用户权限、用户组权限,其中后两个表已经合并为一个视图方便查询。获取用户权限保存到 Array为了方便在各控制器中调用,在 common.php 中定义了 getPerms() 方...
研究ThinkPHP源码时发现删除记录的 destory 方法中的判断有点绕,学习了下发现还是因为自己读书太少。先看下面的逻辑:/** * 删除记录 * @access public * @param mixed $data 主键列表 支持闭包查询条件 * @return bool */ public static function destroy($data) { if...
微软的pdo_SqlSrv驱动只支持将decimal类型转为php的string字符串,不支持转float,官方在github上有回答,因为如果转换可能造成精度不准确(没仔细研究)。官方给出的方案是自己下载 SqlSrv 源码修改编译。编译教程:ThinkPHP 修改方法修改:thinkphp/library/think/db/connector/Sqlsrv.php,将以下参数设置成fal...
需求背景微酷最近使用ThinkPHP框架开发了一个移动应用的 api 服务端,通过php_pdo_sqlsrv扩展和MSSQL数据库交互。移动前端技术采用vue + framework7开发,然后发现前端表单页面报错,错误内容大体为:控件期望得 Number 数字类型,结果得到的却是 String 字符串类型。看了下服务端 api 返回的json数据,发现原本数据库(MSSQL)中decim...
按惯例还是吐槽 ThinkPHP 官方社区极度不友好,提问基本得不到答案,更很少有官方人员回复。ThinPHP 5.1 中间件判断 action 是否存在中间件 public function handle($request, \Closure $next) { //验证action是否存在 if (!check_action_exists($r...
先吐槽一下:最新刚入门ThinkPHP才发现真是入坑了,框架是不错就是官方社区太冷清了,问个问题基本没人搭理。项目背景最近用 ThinkPHP 重构公司的移动 App 服务端,公司 ERP 数据库使用 Sql Server 数据库并且排序规则是Chinese_PRC_BIN,于是在使用 ThinkPHP 中的 SqlSrv 驱动查询数据时报错了。错误信息:获取数据出错SQLSTATE[42S...