我正在创建一个命令并想要获取所有选项,所以我在代码中使用了 getOptions() ,但它总是返回一个空数组。
经过一些调试,我发现这个 getOptions 方法是在 HasParameters 特征中定义的,并且始终是一个空数组;我想知道它的目的是什么?我在文档中找不到任何有关它的信息。这是 Laravel 的事情吗?还是 Symfony 的?
正如你所说,
getOptions
来自HasParameters
,你应该看到HasParameters
位于Illuminate\Console\Concerns
命名空间中,所以它是100% Laravel...
$this->options()
,它将返回一个选项数组...
创建命令时您可以提供参数:
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() 方法中定义 您的命令收到的任何参数或选项。这两种方法 返回一个命令数组,这些命令由数组列表描述 选项。
实际上,如果您创建一些命令,只需忘记这些功能即可