Laravel artisan 命令 - 更改脚本中的选项?

Laravel artisan command - Change option in script?

是否可以更改传递给 PHP 文件中的 Laravel 命令的选项?我尝试了一些类似 $this->option('optionName', 'newValue'); 的方法,但没有找到解决方案。此外,我不能简单地获取值并将其设置为新变量,因为我正在扩展迁移命令并且需要为此重置选项。准确地说是 --path 选项。

很抱歉回答我自己的问题,但我找到了适合我的解决方案:

$this->getDefinition()->getOption("optionName")->setDefault("newValue");

因为它只覆盖默认值,所以它只在选项未通过 CLI 传递时才有效。如果有人有更好的处理方法请提供答案!

选项是从 input 界面中获取的。这个接口还提供了一个可以使用的setOption方法。因此,您可以按如下方式更改选项:

$this->input->setOption('optionName', 'yourValue');
$this->option('optionName'); // Returns 'yourValue'