所以我尝试添加一个带
的命令php artisan command:make MailSendCommand
创建了MailSendCommand.php文件。 我把它编辑成了这个:
class MailSendCommand extends Command {
protected $name = 'command:send-mail';
protected $description = 'Send mails to the users.';
public function __construct()
{
parent::__construct();
}
public function fire()
{
$this->info('Befehl wird ausgeführt' );
}
...
在我的文件start / artisan.php中我添加了
Artisan::add(new MailSendCommand);
但是当我输入' php artisan命令时:send-mail'它说:
Command "command:send-mail" is not defined.
它只适用于我的家用电脑(XAMPP),但不适用于我的实时服务器(PHP 5.5.15(cgi-fcgi))
' php artisan clear:cache'和' php artisan dump-autoload'没有帮助。
答案 0 :(得分:1)
看起来问题与您的设置有关。您正在使用PHP CGI而不是CLI来运行无法运行的命令。
确保您的实时环境中存在代码并在CLI上运行命令,因为这些是命令行脚本。
答案 1 :(得分:1)
转到app/Console/Kernel.php
并将该类添加到commands
变量中。它看起来像是:
class Kernel extends ConsoleKernel
{
/**
* The Artisan commands provided by your application.
*
* @var array
*/
protected $commands = [
Commands\MyCustomCommand::class,
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
// $schedule->command('inspire')
// ->hourly();
}
}
这里我添加了MyCustomCommand
作为有效的工匠命令。检查它是否正在执行的命令之中:
php artisan list