framework icon indicating copy to clipboard operation
framework copied to clipboard

ThinkPHP Framework

Results 260 framework issues
Sort by recently updated
recently updated
newest added

library/think/model/relation/BelongsTo.php 预载入函数eagerlySet 在处理的时候可能会导致进行懒加载读取的情况 当查询的数据集里的关联外键字段值全部都为null的情况下,函数中的$range值为空数组。 这时,关联模型的预载入处理函数 eagerlySet 无法为该数据集设置相应的关联对象,导致后续代码在遍历读取数据集的关联对象的时候,框架进行了懒加载,导致了数据库遍历查询。 在eagerlySet 里需要对$range为空的情况进行默认关联对象的设置。 这个问题在其他的关联类型也存在

ORM
TP5

添加$message是否存在的判断

析构函数里面我测试了下Log::info(’销毁成功‘) 日志没有写进去,跟踪了下,没找到所以然~~ 不写在析构函数里就可以; Cache类却可以正常工作

如果上传文件不按套路出牌,表单内file的名称命名方式为image[2],image[6],image[5]这种不是从0开始,没有顺序的数组,会500报错

如图:我在model.php基类中打印,可以看到动态设置了suffix,但是走到848行->save()的时候,调用的还是原来没设置suffix时的对象 ![企业微信截图_1637818852587](https://user-images.githubusercontent.com/26156050/143386901-6688cb2a-3690-451e-a7cf-b1b362381bfa.png) ![企业微信截图_16378188902666](https://user-images.githubusercontent.com/26156050/143386908-c02fce87-9672-46cc-9cda-ca7e11523633.png)

ORM
TP5

![image](https://user-images.githubusercontent.com/9455777/140021432-f0647c18-64de-47b9-9710-f35f23bfe6f5.png) ![image](https://user-images.githubusercontent.com/9455777/140021530-2e256cb3-141c-431e-896e-2e7c897b94ce.png)

多层控制器通过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语句也跟着变成大写,这种的怎么解决? ![1](https://user-images.githubusercontent.com/12426724/134643973-42fc6a19-ada9-49ab-bf8f-a03f740609c6.png) ![2](https://user-images.githubusercontent.com/12426724/134643994-9e118bcf-4778-42ce-9a45-861eeb6eef08.png)