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

Posted

技术标签:

【中文标题】Laravel artisan 命令 - 更改脚本中的选项?【英文标题】:Laravel artisan command - Change option in script? 【发布时间】:2018-06-22 21:10:00 【问题描述】:

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

【问题讨论】:

如果要扩展它,为什么不覆盖$signature 属性? 创建多租户应用。遍历可用的模式,需要根据当前使用的模式动态更改路径。 【参考方案1】:

input 接口获取选项。该接口还提供了可以使用的setOption 方法。因此,您可以按如下方式更改选项:

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

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

以上是关于Laravel artisan 命令 - 更改脚本中的选项?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel - 捕获 php artisan 命令

什么是最大值php artisan命令的执行时间

如何更改 Laravel Artisan CLI PHP 版本?

Laravel 的Artisan 命令学习

MongoDB 和 Artisan 在 Laravel 5 和 Lumen 上进行迁移

Laravel 5 - 为包创建 Artisan 命令