未找到 Laravel 5.8 自定义命令
Posted
技术标签:
【中文标题】未找到 Laravel 5.8 自定义命令【英文标题】:Laravel 5.8 custom command not found 【发布时间】:2020-02-21 21:19:19 【问题描述】:我使用 artisan 创建了一个自定义命令:
php artisan make:command resetNegotiations
比删除缓存:
php 工匠缓存:清除
但是如果我尝试运行:php artisan ResetNegotiations我得到了错误:
命令“ResetNegotiations”未定义。
ResetNegotiations.php文件存在于app/Console/Commands
我发现了类似的问题: - Command is not defined exception 但它没有修复我的问题。
我已在 app/Console/Kernel.php 中将内核更新为https://laravel.com/docs/5.8/artisan#registering-commands,但是……什么也没有。缓存重建后也出现同样的错误。
kernel.php
....
protected $commands = [
Commands\ResetNegotiations::class,
//
];
我错过了什么?
这是命令:
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class resetNegotiations extends Command
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'command:name';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Command description';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
parent::__construct();
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
//
mail("######@#####.it", "Scheduledartsan ", "Command test");
【问题讨论】:
您应该使用驼峰式,否则文件将无法正确自动加载。所以将类重命名为ResetNegotiations
,将文件重命名为ResetNegotiations.php
谢谢。我已经使用大写更新了类名、类文件和内核。刷新了缓存,但命令工匠列表显示了除我之外的所有命令。
【参考方案1】:
protected $signature = 'command:name';
是您在 artisan 中用来调用命令的。如果您想使用它,只需将签名更改为protected $signature = 'resetNegotiations';
。您发布的工匠命令应该在更改后工作。
【讨论】:
以上是关于未找到 Laravel 5.8 自定义命令的主要内容,如果未能解决你的问题,请参考以下文章
如何在 laravel 5.8 或 6 中制作通用自定义包进行身份验证。*