Yii2:如何将控制台命令中的命名参数传递给另一个操作


Yii2: How to pass named parameters in console command to another action?

我正在运行以下控制台命令:

yii t/gen 520 34 -someoption --number=1

并且由于t/gen这只是实际动作template/generate-preview的别名,我需要将其传递或重定向到另一个控制器/动作。所以我这样做:

Yii::$app->runAction('template/generate-preview', [ $ID, $count ]);

所以数字520和34被传递,但是我如何传递命名参数someoptionnumber ?它们是实际控制器中的选项,因此是该控制器的公共属性(如这里)。

是否有可能传递这些命名参数,即在控制器类上设置这些属性?

可以在参数列表中使用键值对:

Yii::$app->runAction('template/generate-preview', [
    $ID,
    $count,
    'someoption' => true,
    'number' => 1
]);

且不要在参数名前添加--前缀,它们会被自动加在前面