控制台命令中的getOptions是什么

问题描述 投票:0回答:2

我正在创建一个命令并想要获取所有选项,所以我在代码中使用了 getOptions() ,但它总是返回一个空数组。

经过一些调试,我发现这个 getOptions 方法是在 HasParameters 特征中定义的,并且始终是一个空数组;我想知道它的目的是什么?我在文档中找不到任何有关它的信息。这是 Laravel 的事情吗?还是 Symfony 的?

laravel symfony
2个回答
1
投票

正如你所说,

getOptions
来自
HasParameters
,你应该看到
HasParameters
位于
Illuminate\Console\Concerns
命名空间中,所以它是100% Laravel...

所以,你要使用的是:

$this->options()
,它将返回一个选项数组...


0
投票

创建命令时您可以提供参数:

protected $signature = 'app:test {user} {test=} {--force}';

此签名包含:

  • 参数:user 和 test= ($this->argument('user') 和 $this->argument('test='))

    例如。

    php artisan app:test 1 test=mail

  • 选项:force ($this->option('force'))

    例如。

    php artisan app:test 1 test=mail --force

分别获取所有:$this->options() 和 $this->arguments()

更新。正如文档所说:

您可以在 getArguments() 和 getOptions() 方法中定义 您的命令收到的任何参数或选项。这两种方法 返回一个命令数组,这些命令由数组列表描述 选项。

实际上,如果您创建一些命令,只需忘记这些功能即可

© www.soinside.com 2019 - 2024. All rights reserved.