年度归档: 2022 年
-
在 Laravel 6 构建生产环境执行 composer install 时出现报错,提示需要 Moontoast\Math\BigNumber 支持。通过在 composer.json 的 require 配置中添加 moontoast/math 依赖并执行 composer require 命令安装该组件,再次运行 composer install 后问题解决,部署过程恢复正常。
-
本文分析了执行 phpcs 时提示 FILE: FOUND 1 ERROR AFFECTING 1 LINE 的问题。通过检查报错的文件行号,发现具体错误包括冗余的分号、代码缩进不匹配以及函数右大括号位置不规范。针对缩进问题使用 IDE 格式化代码,并手动删除多余字符后,重新执行 phpcs 验证,确认所有错误已修复,不再出现报错提示。
-
在 GitLab CI/CD 流水线中 Build composer 失败,经排查发现本地环境正常而线上执行特定命令时报错。通过对比不同命令参数,确认失败原因在于使用了 –no-dev 参数跳过了开发依赖,导致 require-dev 配置中的 fzaninotto/faker 包未被安装。将该包从 require-dev 移至 require 配置后,问题得到解决。
-
针对 Laravel 6 中后端保存时空字符串自动转为 null 的问题,经排查发现全局中间件堆栈中默认包含 ConvertEmptyStringsToNull 中间件,该组件负责将请求中的空字符串转换为 null。鉴于直接移除中间件可能影响其他功能且难以评估范围,最终选择在响应给前端时进行反向转换,通过使用 NULL 合并运算符将 null 值还原为空字符串。
-
在 Blade 视图中渲染 JSON 数据时,默认的双大括号会将双引号转换为 HTML 实体,导致前端解析困难。若直接使用非转义语法,虽然解决了实体问题,却可能因 URL 值未正确转义而导致 JSON 结构错误。文章最终采用 addcslashes 函数对字符串进行 C 语言风格转义,从而在防范潜在安全风险的同时,生成符合规范且便于前端解析的 JSON 结构。
-
在 Navicat for MySQL 中将表从 5.7 版本数据库复制至 8.0 版本时,因包含默认时间为 0000-00-00 00:00:00 的数据而报错 1292。尝试在 Homestead 配置中禁用 MySQL 8 无果后,对比两个版本的 sql_mode 发现 8.0 默认启用了 NO_ZERO_IN_DATE 和 NO_ZERO_DATE。通过修改目标数据库的 sql_mode,移除上述两项配置并重新连接,再次执行复制操作成功解决了该问题。
-
执行 sudowww ‘php artisan es:migrate’ 时,系统报错提示无法找到名称为 ik_smart 的分词器。经排查,原因在于运行 Elasticsearch 安装脚本后,未安装对应版本的 IK 分词插件。通过补充安装该插件,问题得到解决。
-
执行脚本安装 Elasticsearch 后发现 IK 分词插件未生效,经排查脚本自动安装代码无效。尝试手动使用 elasticsearch-plugin 安装插件,因 ES 版本为 7.17.6,先后尝试最新版及 7.17.5 版本插件均报版本不匹配错误。最终决定修改安装脚本,将 Elasticsearch 版本回退至 7.17.5,重新安装后 ES 版本正确且插件成功安装。
