分类: Web应用开发
-
在 PHP 7.4 环境下运行代码时出现了 Illegal offset type in isset or empty 报错。经排查,变量 $setting 的值为对象,而代码直接尝试将其作为数组偏移量进行访问。通过将 $setting[‘settingId’] 转换为字符串后,再次打印数值确认转换成功,问题随之解决,程序不再报错。
-
针对 GraphQL API 响应报错提示预期 URL 类型却接收到空字符串的问题,通过打印对象发现其值为空字符串。经排查,该字段允许为 null 但对空字符串会执行 URL 规则验证。最终将值设置为 null 或符合规则的 http 开头字符串后,验证不再报错。
-
在 GraphQL API 开发中遇到了字段冲突报错,提示 default 字段存在 Float! 和 Boolean! 类型冲突。经排查,原因在于接口实现中 ThemeSettingRange 和 ThemeSettingCheckbox 的 default 字段类型不同,且在同一选择集中使用了内联片段进行查询。根据规范,同名或同别名字段必须返回相同类型。参考官方 issue,使用字段别名可以解决此问题,但这会增加客户端的解析难度。
-
本文记录了尝试在 Laravel 6 及 Module 中将本地化翻译文件从 PHP 格式转换为 JSON 格式的过程。作者通过修改服务提供者的 registerTranslations() 方法来引用 JSON 文件,并确认了 PHP 文件的优先级高于 JSON 文件。尽管调整了相关代码并验证了区域设置,翻译功能最终未能正常工作,因此决定放弃此实现。
-
本文介绍了在 Laravel 6 中实现 MySQL 表 UUID 类型字段的操作过程。通过数据库迁移添加了 char(36) 类型的字段并建立索引,在模型构造方法中使用 Str::orderedUuid() 方法设置值以利用排序功能。操作过程中遇到了批量赋值错误,通过在模型中设置相应属性为可批量赋值解决了问题,最终生成的 SQL 符合预期。
-
执行 php artisan config:clear 时报错,提示无法打开指定流,原因是目标模块目录已被重命名。经排查,/config/app.php 的 providers 中仍注册了旧的类名路径。删除该配置项后,再次运行 composer install 和 php artisan config:clear 命令,皆成功执行,问题得以解决。
-
针对在 Windows 10 中测试任务超时功能无效的问题,文章记录了在 Laravel 6 线上 Linux 服务器中进行测试的过程。在 Job 中添加长时间 sleep 后发现设置未生效,经排查确认是因为队列处理器作为常驻进程会在内存中保留启动时的应用状态,导致无法检测到代码变更。通过执行 php artisan queue:restart 命令重启队列处理器后,再次执行任务超过限制时间自动失败,结果符合预期。
-
本文介绍了在 Laravel 6 队列任务中解决解压缩失败后无法删除下载 zip 文件的问题。由于在 failed 方法中无法获取普通属性的值,作者尝试将 zip 文件绝对路径从普通属性调整为静态变量。最终通过静态变量成功在 failed 方法中获取到文件路径,实现了任务失败时的文件清理。
-
针对在 Laravel Framework 6.20.44 与 nuwave/lighthouse v5.52.1 环境中遇到的类型不兼容报错问题,由于难以回退扩展版本,文章提供了一种临时变通方案。操作步骤是编辑 ReportingErrorHandler.php 文件,注释掉报告异常的相关代码。经过测试,再次请求后能够成功查看到具体的异常信息,解决了无法查看详情的困扰。
