分类: 编程语言
-
在使用 Homestead v13.2.1 运行项目时,因默认 PHP 8.0 版本与软件包依赖冲突导致 Composer 更新报错。通过修改 Homestead.yaml 配置指定站点 PHP 版本,并执行 vagrant reload –provision 重启虚拟机。在解决共享文件夹为空的问题后,下载 composer.phar 并使用 php7.4 命令执行更新,最终成功切换至 PHP 7.4.14,访问首页确认环境符合预期。
-
针对在本地 Windows 10 环境执行 SQL 查询正常,而在 Linux 容器中无法查询到记录的问题,通过对比发现生成的 SQL 语句差异在于路径分隔符。分析打印生成的 SQL 与 DIRECTORY_SEPARATOR 常量,确认 Windows 环境生成反斜杠而 Linux 环境生成正斜杠,导致拼接后的路径格式不一致。删除代码中依赖 DIRECTORY_SEPARATOR 的拼接部分后,生成的 SQL 在两个操作系统中保持一致,成功解决了查询结果为 NULL 的问题。
-
在 PHP 7.4 环境下运行代码时出现了 Illegal offset type in isset or empty 报错。经排查,变量 $setting 的值为对象,而代码直接尝试将其作为数组偏移量进行访问。通过将 $setting[‘settingId’] 转换为字符串后,再次打印数值确认转换成功,问题随之解决,程序不再报错。
-
针对PHP 7.4中使用ltrim函数删除字符串开头字符时,导致下划线前字符串丢失的问题进行排查。发现原因在于第二个参数末尾包含斜杠,导致函数将下划线也视为需删除的字符。调整参数去掉末尾斜杠后,ltrim虽能返回预期结果,但最终决定改用substr函数来实现字符串截取,确保逻辑稳定且结果符合预期。
-
本文介绍了在 Laravel 6 中实现 MySQL 表 UUID 类型字段的操作过程。通过数据库迁移添加了 char(36) 类型的字段并建立索引,在模型构造方法中使用 Str::orderedUuid() 方法设置值以利用排序功能。操作过程中遇到了批量赋值错误,通过在模型中设置相应属性为可批量赋值解决了问题,最终生成的 SQL 符合预期。
-
执行 SQL 语句时报错 1093,提示不能在 FROM 子句中指定目标表进行更新。参考 MySQL 官方文档得知,在 MySQL 中无法修改 SELECT 部分使用的同一个表。解决方法是将表连接到自身,使 MySQL 将表视为两个不同的事物,从而允许执行破坏性更改操作。
-
本文在跟随《重构 改善既有代码的设计 ( 第 2 版 )》运行第一个示例时,遇到了浏览器控制台报错 Uncaught TypeError: invoice.performances is not iterable。排查发现,错误原因在于变量 invoice 被错误地定义为了数组,导致无法访问 performances 属性。通过修改 invoice 的定义去除了多余的数组标记后,代码成功运行,输出符合预期,问题解决。
-
本文记录了在应用 .gitignore 类规则时解决配置未生效问题的过程。针对 /assets/apps/ 目录下的特定文件未被忽略的情况,确认 TOGoS/PHPGitIgnore 解析器不支持双星号语法。随后修改配置规则,限定 /apps 目录下仅保留 .php 文件,最终成功实现了忽略其他类型文件的目标,符合预期效果。
-
执行 yarn 时报错提示 laravel-mix 的补丁文件无法被解析。通过查看 Git 日志发现补丁文件版本变更,但删除 node_modules 目录并重新安装未能解决问题。参考相关 Issues 使用 npx patch-package laravel-mix 生成补丁后,错误依然存在。最终通过将补丁文件的换行符从 CRLF 替换为 LF,成功解决了该报错并使 yarn 正常执行。
-
本文记录了在 Laravel 6 中将打印出的 SQL 复制到 MySQL 5.7 执行时结果不一致的问题。程序查询返回 79 条数据,而数据库直接执行返回 81 条。排查发现 whereRaw 语句中的参数绑定存在差异,通过将 SQL 改为原生形式,或者使用 addslashes 对反斜杠进行转义,最终使程序执行结果变为 81 条,与数据库执行结果一致。
