执行php artisan make:model时为何自动运行Commands目录下所有命令
Laravel执行make:model时自动运行全部自定义命令的排查方案
常见错误原因
- 自定义命令业务逻辑位置错误:确认
app/Console/Commands目录下所有自定义命令的业务逻辑都写在*handle()*方法内,禁止将可执行逻辑写在*__construct()*构造函数中。Laravel运行任意Artisan命令前会实例化所有已注册的命令类,构造函数内的代码会在此时全局执行,这是该问题的最高发诱因。 - 命令注册逻辑错误:检查
app/Console/Kernel.php文件的命令注册部分,确认仅做命令类的绑定注册,没有额外添加Artisan::call()之类的主动执行逻辑。 - 服务提供者全局触发:排查
app/Providers目录下所有服务提供者的boot()、register()方法,确认没有编写无条件执行Artisan命令的代码。
验证修复效果
调整后先执行php artisan list,如果没有触发多余的自定义命令逻辑,再执行php artisan make:model TestModel测试,确认问题是否解决。
内容的提问来源于stack exchange,提问作者Eloise85
相关产品推荐
相关产品推荐

