【发布时间】:2021-08-07 16:30:24
【问题描述】:
我创建了一个控制台命令,它将根据用户输入自动设置数据库,我在post-install-cmd 中添加了该命令,但是当我运行composer install 命令时它返回error code 1。
如果我像php artisan setupDB 这样手动运行命令,它可以工作,我不知道是什么问题。
可能是我在错误的脚本事件中添加了我的命令!
这是我的composer.json 文件的脚本部分。
"scripts": {
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover --ansi"
],
"post-root-package-install": [
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"@php artisan key:generate --ansi"
],
"post-install-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
"php artisan setupDb",
"php artisan optimize"
]
}
这是错误 SS。
【问题讨论】:
-
如果您对我的问题投反对票,请至少评论一个原因。
-
我假设您已经阅读了this part 的文档?你为什么要搞乱composer.json?向我们展示您的
routes/console.php的样子。如果你说只有inspire命令存在,那么你需要正确地创建你自己的命令。 -
我投了反对票,因为问题不是很清楚。您需要提供更多详细信息以帮助我们了解问题。正如我所说,您需要包含控制台路由;我们需要查看
setupDb命令的创建位置。我也以同样的理由投票结束了这个问题。 -
再次,您不需要查看我的 setupDb 命令,因为它是在应用程序的默认控制台文件夹中创建的,无需在控制台路由中定义该命令。这是一个像
php artisan setupDb这样运行的工匠命令。使用作曲家脚本和屏幕截图检查完整问题。所有信息都在那里。
标签: php laravel console composer-php command