laravel 未列出自定义命令

laravel custom command not listed

我创建了一个名为 confirmUserCommand 的自定义命令,其文件名与 class 名称匹配(大小写相同)。 $name 设置为 confirmuser.

运行 命令 php artisan list 在我的本地显示新命令,但不在服务器上(即 运行 linux)。我确实执行了 composer dump-autoload 并更新了相关的 composer 文件,但无济于事。

有什么建议吗?

刚刚弄乱了我的头发,发现了问题..

为了列出包括自定义命令在内的 artisan 命令,您必须调用系统 PHP CLI 解释器,特别是 PHP 调用。

php artisan list :将按预期列出所有命令,但不会列出您创建的自定义命令

php-cli artisan list :这将列出所有命令,包括创建的自定义命令

希望这对某人有所帮助并拯救他们的头发:)

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 artisan 列表中,您需要将其添加到 App/http/Kernel.php 文件中,特别是在命令数组中:

 protected $commands = [
   'App\Console\CreateSlugsCommand',....
];

执行此操作后,您可以 运行 在您的控制台 php artisan list 中,您将看到自定义命令。

从 laravel 版本 5.6 开始,您无需在 app\Console\kernel.php

中输入自定义命令

在 Laravel 的较新版本中,不再需要注册命令,只需确保控制台命令 class 名称与托管它的文件相同即可。

App/Console/Commands/MyCommand.php -> class 我的命令 ...