artisan 命令不能接受参数 Laravel

artisan command can't take argument Laravel

我为laravel 5开发了一个包,我也为这个包创建了一个命令,命令文件是这样的:

 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() 方法中获取此参数?

您应该将它们放在当前 returns 一个空数组的 getArguments() 方法中。请参阅此处的文档:for 5.0, or for 4.2.

因此,例如:

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