无法在自定义命令中添加参数

时间:2016-03-20 21:32:42

标签: laravel-5 laravel-5.1

我正在使用laravel 5.1。在debian bash shell中。我创建了一个名为survey:complete的自定义控制台命令。我已经使用了一段时间,现在我想为要生成的调查数量添加一个可选参数。

但是,我已经按照文档进行了操作,但我还没有能够成功添加我的论点。我同样改变了签名:

protected $signature = 'survey:complete {--number=}';

并尝试引用参数

public function handle() { 
    for( $i = 0; $i < $this->argument('number'); $i++ ) { 

但是我收到了这个错误:

$> php artisan survey:complete --number=1
[InvalidArgumentException]
The "number" argument does not exist.

我print_r()&#39;参数数组,我得到了这个:

$ php artisan survey:complete --number=1
Array(
    [command] => survey:complete
)
[InvalidArgumentException]
The "number" argument does not exist.

如何将我的参数添加到我的命令中?

2 个答案:

答案 0 :(得分:5)

我需要使用option(),而不是argument()

$number = $this->option('number');

答案 1 :(得分:0)

改为为我工作:

   protected $signature = 'mycommand {limit=1000}'
   // call: php artisan mycommand 100

我使用以下方法检索值:

public function handle() {    
    // ...
    $limit = $this->arguments('limit')['limit']
    // ...
}