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 我需要将其传递或重定向到另一个 controller/action。所以我这样做:

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

因此传递了数字 520 和 34,但是如何传递命名参数 someoptionnumber?它们是实际控制器中的选项,因此是该控制器的 public 属性(如 )。

是否可以传递那些命名参数,即在控制器上设置那些属性class?

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

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

并且不要在参数名称中添加 -- 前缀,它们将自动添加到前面。