laravel 命令中的任何虚数参数

Any imaginary parameter in the laravel command

是否可以用laravel命令传递任何虚构的参数?该参数不应在命令实现中定义。 例如这里是命令签名:

protected $signature = 'generateInvoices {--filter=*}';

然后我可以通过以下方式使用此命令:

php artisan generateInvoices --filter=filter1 --filter=filter2

但我想使用其他参数:

php artisan generateInvoices --filter=filter1 --filter=filter2 --somethingelse=23 --thisIsNextParam=4 myImaginaryparam=54

你不能做动态选项"parameters"(标有--),但你可以做一个可选参数数组。

protected $signature = 'generateInvoices {--filter=*} {extraArgs?*}';

然后运行没有--的额外部分,你可以得到一个额外的参数数组,你需要单独解析。

php artisan generateInvoices --filter=filter1 --filter=filter2 somethingelse=23 thisIsNextParam=4 myImaginaryparam=54

使用 $this->argument('extraArgs)` 将为您提供一组可解析的值。

您的命令可用的所有数据的结果:

"Options: "
array:9 [
  "filter" => array:2 [
    0 => "filter1"
    1 => "filter2"
  ]
  "help" => false
  "quiet" => false
  "verbose" => false
  "version" => false
  "ansi" => false
  "no-ansi" => false
  "no-interaction" => false
  "env" => null
]
"Arguments: "
array:2 [
  "command" => "generateInvoices"
  "extraArgs" => array:3 [
    0 => "somethingelse=23"
    1 => "thisIsNextParam=4"
    2 => "myImaginaryparam=54"
  ]
]