laravel 自定义命令未列出

Posted

技术标签:

【中文标题】laravel 自定义命令未列出【英文标题】:laravel custom command not listed 【发布时间】:2015-04-06 22:45:02 【问题描述】:

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

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

有什么建议吗?

【问题讨论】:

查看我在这个问题中的回答:***.com/a/35247944/241279 也许有帮助。 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

从 laravel 5.6 版开始,您无需在 app\Console\kernel.php 中输入自定义命令

【讨论】:

【参考方案3】:

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

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

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

【讨论】:

【参考方案4】:

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 

它应该在那里列出:)

【讨论】:

我不明白为什么它在 Laravel 手册中的指向不同。谢谢!【参考方案5】:

把我的头发扯下来发现了问题..

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

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

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

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

【讨论】:

以上是关于laravel 自定义命令未列出的主要内容,如果未能解决你的问题,请参考以下文章

未找到 Laravel 5.8 自定义命令

laravel 自定义命令未列出

laravel 自定义命令生成 servicerepository层

laravel 自定义命令生成 servicerepository层

自定义 laravel 迁移命令“[Illuminate\Database\Migrations\MigrationRepositoryInterface] 不可实例化”

如何在不安装完整框架的情况下测试自定义 Laravel 控制台命令?