2015-02-14 2 views
0

Я разработал пакет для Laravel 5, я и создал команду для этого пакета, файл команды выглядит так:ремесленник команда не может принять рассуждение Laravel

class MyCommand extends Command { 

    protected $name = 'package:command'; 

    public function __construct() 
    { 
     parent::__construct(); 
    } 

    public function fire() 
{ 
    $this->info('');$this->info('');$this->info(''); 

    $this->info('   [ Package ]  '); 
    $this->info('    ------------------'); 
    $this->call(\\some codes here ...); 
} 

protected function getArguments() 
{ 
    return []; 
    } 

И это, как зарегистрироваться команда в ServiceProvider

$this->app['package:command'] = $this->app->share(function() 
    { 
     return new \MyNameSpace\Package\MyCommand(); 
    }); 

команда package:command работает нормально, но как только я пытаюсь запустить его с аргументом следующее сообщение об ошибке придет Too many argumnents,

Вопрос: где в моем коде должно быть изменено, чтобы передать аргумент команде? отредактировал: и как получить этот аргумент в методе fire()?

ответ

2

Вы должны поместить их в метод , который в настоящий момент возвращает пустой массив. См. Документацию здесь: for 5.0, или for 4.2.

Так, например:

protected function getArguments() 
{ 
    return [ 
     ['example', InputArgument::REQUIRED, 'required argument example'], 
     ['example2', InputArgument::OPTIONAL, 'optional argument example', 'some default value'] 
    ]; 
} 
+0

так, если я добавить следующие строки в 'getArguments()' функция, как я должен выполнить команду в командной строке, например: 'PHP artisan package: command arg1' – Siavosh

+0

Да, точно так. Вы просто вводите аргументы после команды. –

+0

Я только что редактировал вопрос, пожалуйста, проверьте его, задайтесь вопросом, как принять этот аргумент в методе 'fire()'? – Siavosh

Смежные вопросы