分类: Laravel 6
-
在 Laravel 6 构建生产环境执行 composer install 时出现报错,提示需要 Moontoast\Math\BigNumber 支持。通过在 composer.json 的 require 配置中添加 moontoast/math 依赖并执行 composer require 命令安装该组件,再次运行 composer install 后问题解决,部署过程恢复正常。
-
针对 Laravel 6 中后端保存时空字符串自动转为 null 的问题,经排查发现全局中间件堆栈中默认包含 ConvertEmptyStringsToNull 中间件,该组件负责将请求中的空字符串转换为 null。鉴于直接移除中间件可能影响其他功能且难以评估范围,最终选择在响应给前端时进行反向转换,通过使用 NULL 合并运算符将 null 值还原为空字符串。
-
在 Blade 视图中渲染 JSON 数据时,默认的双大括号会将双引号转换为 HTML 实体,导致前端解析困难。若直接使用非转义语法,虽然解决了实体问题,却可能因 URL 值未正确转义而导致 JSON 结构错误。文章最终采用 addcslashes 函数对字符串进行 C 语言风格转义,从而在防范潜在安全风险的同时,生成符合规范且便于前端解析的 JSON 结构。
-
执行 sudowww ‘php artisan es:migrate’ 时,系统报错提示无法找到名称为 ik_smart 的分词器。经排查,原因在于运行 Elasticsearch 安装脚本后,未安装对应版本的 IK 分词插件。通过补充安装该插件,问题得到解决。
-
在 Laravel 6 中,模型应用了软删除后再次插入记录会出现唯一键冲突,这是因为软删除仅更新 deleted_at 字段而未从数据库物理移除记录。由于查询结果自动排除软删除数据,需要使用 withTrashed 方法获取包含软删除在内的记录,再利用 forceDelete 方法进行硬删除。永久删除记录后,再次插入新数据即可避免冲突并成功执行。
-
程序在 Linux 环境下运行时报错 Failed to load type: OnlineStoreThemePreset,而本地 Windows 10 环境运行正常。排查后发现原因是 GraphQL Schema 缓存在 Redis 中未更新。通过执行 php artisan cache:clear 命令清除缓存后,接口请求恢复正常,问题得到解决。
-
本文记录了在 Laravel 6 中运行存储于 MySQL 的 Blade 代码并获取输出的过程。起初尝试将代码手动编译为原生 PHP 并通过输出缓冲包含文件来运行,虽验证了可行性,但因可维护性问题未被采纳。最终方案保留了后端自动完成 Blade 编译至 PHP 模板的流程,以满足前端要求并实现代码块的正常渲染。
-
在 Linux 和 Laravel 6 环境下,针对任务队列即使设置了超时时间仍显示运行中的问题,文章进行了排查。过程包括检查日志确认命令未完成,以及在容器中手动执行命令复现失败。最终发现根源在于命令行执行失败时未抛出异常,导致任务队列无法感知错误并自动结束,从而维持运行状态。
