无法将参数添加到自定义命令

use*_*841 3 laravel-5 laravel-5.1

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

但是,我已按照文档进行操作,但无法成功添加参数。我同样更改了签名:

protected $signature = 'survey:complete {--number=}';
Run Code Online (Sandbox Code Playgroud)

并试图引用该论点

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

但是我得到这个错误:

$> php artisan survey:complete --number=1
[InvalidArgumentException]
The "number" argument does not exist.
Run Code Online (Sandbox Code Playgroud)

我print_r()的参数数组,我得到这个:

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

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

use*_*841 6

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

$number = $this->option('number');
Run Code Online (Sandbox Code Playgroud)

  • 它在文档中说,论证就是您所需要的,但它根本不起作用。这毫无意义。感谢您的提示,“选项”对我有用! (2认同)