2014-09-01 146 views
1

所以我嘗試添加一個命令與工匠:「找不到命令」

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'); 
    } 
... 

在我的文件中開始/ artisan.php我加

Artisan::add(new MailSendCommand); 

,但是當我輸入 'PHP的工匠命令:發送郵件' 它說:

Command "command:send-mail" is not defined. 

這只是工作我的家用電腦(XAMPP)上,但不是我的活的服務器(PHP 5.5.15(CGI-FCGI))

上'php artisan clear:cache'和'php artisan dump-autoload'沒有幫助。

回答

1

看起來好像問題與您的設置有關。您正在使用PHP CGI而不是CLI來運行不起作用的命令。

確保代碼在您的實時環境中,並在CLI上運行您的命令,因爲這些命令行腳本。

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