framework
framework copied to clipboard
ThinkPHP Framework
library/think/model/relation/BelongsTo.php 预载入函数eagerlySet 在处理的时候可能会导致进行懒加载读取的情况 当查询的数据集里的关联外键字段值全部都为null的情况下,函数中的$range值为空数组。 这时,关联模型的预载入处理函数 eagerlySet 无法为该数据集设置相应的关联对象,导致后续代码在遍历读取数据集的关联对象的时候,框架进行了懒加载,导致了数据库遍历查询。 在eagerlySet 里需要对$range为空的情况进行默认关联对象的设置。 这个问题在其他的关联类型也存在
添加$message是否存在的判断
析构函数里面我测试了下Log::info(’销毁成功‘) 日志没有写进去,跟踪了下,没找到所以然~~ 不写在析构函数里就可以; Cache类却可以正常工作
如果上传文件不按套路出牌,表单内file的名称命名方式为image[2],image[6],image[5]这种不是从0开始,没有顺序的数组,会500报错
如图:我在model.php基类中打印,可以看到动态设置了suffix,但是走到848行->save()的时候,调用的还是原来没设置suffix时的对象  
 
发生于vendor/topthink/framework/src/think/session/driver/File.php,第80行
多层控制器通过controller获取的时候会出现 name.controller 这种问题,利用多层控制器做api版本切换的时候权限表记录的都是 应用名+控制器名+方法名(api::common::sendSms) 实际获取的话会出现 api::v1.common::sendSms 每次切换api版本的时候 都要批量修改权限表路由字段 更换v1为v2 为了更方便的使用 在特定场景直接 获取到api::common::sendSms来匹配用户是否有权限 不受版本号影响 用法: PHPcontroller(true,true); PHP>=8 $request->controller(prefix:true); 第一个true是将控制器转换为小写 第二个true是去除前缀
多应用空控制器统一配置后不再需要在每个应用下面添加Error空控制器文件 只要在config/route.php配置参数empty_controller到指定的空控制器路径就好 例如可以统一放置在app下面,只要配置 'empty_controller' => "app\Error" 也可以放置在app\common下面 'empty_controller' => "app\common\Error" 注意:必须放置在应用目录下面;
大佬,请问一下,在一对多关联模型中,模型文件名和类名的第一个字母都是大写,然后在使用的时候sql语句也跟着变成大写,这种的怎么解决?  