分类: Laravel Modules
-
在使用 Laravel 模块开发过程中,遇到因删除 module.json 文件导致 ModuleNotFoundException 报错且无法发布迁移文件的问题。通过使用 make:migration 命令的 –path 选项自定义路径生成文件,并修改模块的 ServiceProvider 服务加载类,最终实现了无需发布操作即可自动运行模块内的数据库迁移文件,系统能按创建时间顺序合并执行主目录与模块目录中的迁移。
-
本文介绍了在 Laravel 6 中使用 nWidart/laravel-modules 插件为 Blog 模块定义调度任务的过程。主要步骤包括配置 composer.json 实现模块自动加载、生成并注册 Artisan 命令,以及在 App\Console\Kernel 中定义调度。文章验证了命令执行与调度运行的成功,并最终指出应将调度逻辑移至模块内部以实现更合理的架构。
-
本文记录了尝试在 Laravel 6 及 Module 中将本地化翻译文件从 PHP 格式转换为 JSON 格式的过程。作者通过修改服务提供者的 registerTranslations() 方法来引用 JSON 文件,并确认了 PHP 文件的优先级高于 JSON 文件。尽管调整了相关代码并验证了区域设置,翻译功能最终未能正常工作,因此决定放弃此实现。
-
文章解决 Laravel 6 结合 Lighthouse 5 和 nwidart/laravel-modules 7 使用时出现的容器绑定解析异常。排查过程包括修改 GraphQL 文件、检查解析器构造函数及服务提供者注册,并通过调整模块目录名和执行 Composer 安装进行测试。最终发现服务提供者虽实现延迟加载接口但未实现 provides 方法,导致服务未在缓存中正确注册,删除延迟加载实现后程序恢复正常运行。
-
本文针对 Laravel 6 中基于 Laravel Modules 开发的模块数据库迁移问题进行探讨。在模块数量较多的情况下,直接在启动脚本中添加特定模块的迁移命令并不实际。通过使用 module:publish-migration 命令,可将模块目录下的迁移文件复制至 Larav el 标准迁移目录。随后,仅需在启动脚本中执行标准的 php artisan migrate –force 命令即可完成迁移,实现了命令的统一管理。
-
本文介绍了在 Laravel 6 模块中使用队列的具体操作。通过 Artisan 命令生成队列任务类并分发任务,编辑任务文件以更新数据表字段。启动队列监听后,任务成功执行并修改了数据。此外,文章还演示了在任务类中定义 failed 方法,以捕获异常并将失败信息同步写入数据库字段,从而实现完整的异常处理流程。
-
在 Laravel 6 和 Lighthouse 5 环境下,使用 @rules 指令应用 exists 验证规则时,自定义属性名无法按语言区域正确翻译,导致返回的验证消息中包含原始字段名而非本地化名称。经过排查,排除了 nwidart/laravel-modules 版本及语言文件位置的影响,确认原因在于 Lighthouse 5 对验证属性的支持不够彻底。目前决定暂不编写自定义验证器类,暂时接受在非英语环境下属性名未被完全翻译的现状。
-
本文介绍了在 Laravel 6 结合 Lighthouse 5 及模块化架构下,为 GraphQL API 创建自定义验证规则的过程。通过在模块中生成规则类,编写逻辑判断缓存标识是否存在,并在 Schema 文件中使用 @rules 指令引用该规则,实现了验证逻辑的复用。文章还详细说明了如何配置模块内的多语言文件以返回本地化错误消息,最终完成了包含中英文错误提示的接口功能测试。
-
针对在 PhpStorm 和 Laravel 6 环境中出现的 Laravel Idea 模块系统切换提示,本文记录了解决过程。参考官方文档可知,Laravel Idea 利用模块系统概念优化视图、配置及路由的代码补全与生成。因项目当前依赖 nWidart/laravel-modules 包,最终在设置中切换至该选项,并在操作后执行了使缓存失效并重启,从而成功完成模块系统的配置。
