framework
framework copied to clipboard
ThinkPHP Framework
目前的逻辑为: https://www.kancloud.cn/manual/thinkphp6_0/1037484 多环境env支持,直接修改 index.php 入口文件的方式,觉得不太优雅。 【index.php】通常做版本管理,改动环境的时候,修改 index.php 的方式不太优雅。 建议采取修改 .env 文件里的一个参数,比如 APP_ENV=prod 或者 ACTIVE_PROFILE=prod 的方式,根据这个参数,再加载 .env.prod 文件,此种方式。 请问老大,可以接受这种变化吗? 修改为这种方式提交 pull request 会被通过吗?
  在关联预载入时数据表重命名没有加入表前缀,在关联统计时关联条件中使用了表前缀,导致数据表重命名不一致,SQL 报错, 这个我查询社区发现2018/07/18 年就有人提过,但是官方没有给出相应解决方案,麻烦看下 http://www.thinkphp.cn/topic/58114.html
如果$foreignKey和$throughKey都是id的时候,会报错无法使用where查询,在src/model/relation/HasManyThrough.php下面增加代码判断 $throughKey = $this->throughKey; if ($this->baseQuery) { $throughKey = Str::snake(class_basename($this->model)) . "." . $this->throughKey; } 可以解决问题 
league/flysystem的psr/cache限定在v1,以[w7corp/easywechat](https://github.com/w7corp/easywechat)为例,包就冲突了 参考[issue](https://github.com/laravel/framework/pull/38805)
`Request::has('name', 'session')` 只是检测指定 Session 是否存在,如果得初始化 Session 之后才能使用的话,感觉不大友好。 相当于使用`Request::has('name', 'session')` 前就得判断下`Session`,或者使用`Session::has('name')`来判断,这时候`Request::has()`方法就失去了它的便利性和统一化。 希望能优化下这块,如果没初始化Session则直接返回`false`即可,而不是直接报错。 ---- ### 错误流程跟踪 未初始化Session,所以`$this->session`为`null`,转为调用`$this->session()` ``` /** * 是否存在某个请求参数 * @access public * @param string $name 变量名 * @param string...
在Model下 $this->all()->toArray() 返回为数据集。有时会卡死。
这种情况会显示 http://0.0.0.0:8000/groups/del/-788827890 非法请求:groups/del/-788827890 去掉- 就正常 http://0.0.0.0:8000/groups/del/788827890 { "code": 0, "message": "失败", "data": [] }
复现示例: 1:下载 https://github.com/hah1346798520/thinkphp6-bug 文件到本地 2:命令行进去tp目录 3:运行 php think run 4:浏览器打开 http://127.0.0.1:8000 5:狂点登录!!! bug描述:此处点击登录应该稳定返回“验证码错误”,但是有时会返回“令牌数据无效”。 个人调试理解:返回“令牌数据无效”是因为session中无__token__字段,但是调试代码与html页面其实是有token的。 访问浏览器主页后,会同时调用验证码的设置session与token的设置session,这两个的执行先后顺序会影响session中是否有__token__字段。 个人断点调试先后顺序的结果:先运行验证码的设置session,再运行token的正常,反之session中没有__token__字段。
随着越来越多系统函数严格输入参数类型,并且外部输入变量不可控,内置的部分验证方法已经不能满足验证的需求。 例如`date`验证规则,使用了`strtotime()`方法来验证输入值是否符合日期规范,但`strtotime()`的第一个参数要求是`string`类型。 现在使用验证器只能先处理一遍输入值,否则就会报输入类型错误,失去了便利性,故增加相关类型验证方法,以方便快捷限制输入变量类型。