我创建了一个自定义命令confirmUserCommand
,其文件名与类名匹配(相同的情况)。$name 设置为confirmuser
.
运行命令php artisan list
会在我的本地显示新命令,但不会在服务器(正在运行 linux)上显示。我确实执行了作曲家转储自动加载并更新了相关的作曲家文件,但无济于事。
请问有什么建议吗?
我创建了一个自定义命令confirmUserCommand
,其文件名与类名匹配(相同的情况)。$name 设置为confirmuser
.
运行命令php artisan list
会在我的本地显示新命令,但不会在服务器(正在运行 linux)上显示。我确实执行了作曲家转储自动加载并更新了相关的作曲家文件,但无济于事。
请问有什么建议吗?
Laravel 5.2 ~ 5.5:
创建您的命令和编辑
protected $signature = 'order:check'; //or whatever you want your command to be
您必须找到创建命令的位置并编辑app\Console\kernel.php
文件。
在这个文件下
protected $commands = [
\App\Console\Commands\OrderCheck::class,
]
再次运行
php artisan list
它应该在那里列出:)
刚刚把我的头发撕了,发现了问题..
为了列出包括自定义命令在内的工匠命令,您必须调用系统 PHP CLI 解释器,特别是 PHP 调用。
php artisan list
: 会按预期列出所有命令,但不会列出您创建的自定义命令
php-cli artisan list
:这将列出所有命令,包括创建的自定义命令
希望这可以帮助某人并保存他们的头发:)
从 laravel 5.6 版开始,您无需在app\Console\kernel.php
在较新版本的 Laravel 中,不再需要注册命令,只需确保控制台命令类名与托管它的文件相同。
App/Console/Commands/MyCommand.php -> 类 MyCommand ...
为了使它出现在 php artisan 列表中,您需要将其添加到 App/http/Kernel.php 文件中,特别是在 commands 数组中:
protected $commands = [
'App\Console\CreateSlugsCommand',....
];
完成此操作后,您可以在控制台中运行,php artisan list
您将看到自定义命令。