crmeb v3订单导出功能提示连接永久转移,错误500问题修复
4792
最近再给客户搭建crmeb电商小程序管理系统的时候,发现crmeb V3版的顶到导出功能无法使用,提示“连接永久转移”。
于是就一步一步的打印断点,找出问题所在,终于最后在程序执行导出数据之前,出现错误,具体文件为:app/admin/model/order/StoreOrder.php 的 SaveExcel 方法中的如下代码:
PHPExcelService::setExcelHeader(['订单号', '收货人姓名', '收货人手机', '收件人电话', '收货地址', '商品信息','...'])
这句呢意思就是用 PHPExcel 扩展将数据导出到文件,里面的数组是 EXCEL 的表头信息。
这样看的话就是 PHPExcel 本身的问题了,上网上查了一下,最终问题解决。
具体原因是crmeb V3版最新的安装对环境要求是PHP7.2,但是 PHPExcel 使用的是最新的1.8版本的,但是这个版本作者已经不维护了,推荐使用 PhpSpreadsheet。
既然找到问题了,那我们就来解决一下,具体如下:
修改 vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE.php 第288行使用 continue,PHP7不支持,修改为 continue 2 即可,如下:
switch ($type) { case self::OLE_PPS_TYPE_ROOT: $pps = new PHPExcel_Shared_OLE_PPS_Root(null, null, array()); $this->root = $pps; break; case self::OLE_PPS_TYPE_DIR: $pps = new PHPExcel_Shared_OLE_PPS(null, null, null, null, null, null, null, null, null, array()); break; case self::OLE_PPS_TYPE_FILE: $pps = new PHPExcel_Shared_OLE_PPS_File($name); break; default: continue 2; // 修改这里 }
然后修改:crmeb/services/PHPExcelService.php 第 130 行:
$objWriter = \PHPExcel_IOFactory::createWriter(self::$PHPExcel, 'Excel2017');
为:
$objWriter = \PHPExcel_IOFactory::createWriter(self::$PHPExcel, 'Excel5');
这样问题就解决了。测试一下,导出是不是很好用呢~~
总结
这个主要是THINKPHP 扩展 PHPEXCEL 与 PHP7.2等高版本兼容问题,但是crmeb官网最这个问题还是没有解决,讨论论坛也没有一个非常具体的解决方法,这里给补上。
本文网址:https://www.zztuku.com/detail-9765.html
站长图库 - crmeb v3订单导出功能提示连接永久转移,错误500问题修复
申明:如有侵犯,请 联系我们 删除。
您还没有登录,请 登录 后发表评论!
提示:请勿发布广告垃圾评论,否则封号处理!!