13

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

运行命令php artisan list会在我的本地显示新命令,但不会在服务器(正在运行 linux)上显示。我确实执行了作曲家转储自动加载并更新了相关的作曲家文件,但无济于事。

请问有什么建议吗?

4

5 回答 5

28

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 

它应该在那里列出:)

于 2017-01-11T11:07:03.670 回答
1

刚刚把我的头发撕了,发现了问题..

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

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

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

希望这可以帮助某人并保存他们的头发:)

于 2015-02-06T18:18:40.920 回答
1

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

于 2018-12-27T11:32:58.267 回答
0

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

App/Console/Commands/MyCommand.php -> 类 MyCommand ...

于 2022-02-15T14:34:46.197 回答
-1

为了使它出现在 php artisan 列表中,您需要将其添加到 App/http/Kernel.php 文件中,特别是在 commands 数组中:

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

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

于 2018-03-19T15:03:47.740 回答