Yii的CController :: forward()可以指定传递给动作的参数吗?

时间:2016-10-26 15:51:57

标签: model-view-controller yii controller

我想使用CController::forward()而不是重定向或实例化控制器并直接调用操作,因为这样NSImage正确地显示了最终运行的操作。
虽然我在文档中没有看到如何指定要传递给转发操作的参数,因为Yii::app()->controller->action->id参数是字符串,而不是数组。

$route

otherController.php:

public function actionIndex() {
  $this->forward('/otherCtrl/view'); // how to pass a parameter here?

2 个答案:

答案 0 :(得分:0)

注入到操作方法中的参数来自$_GET。因此,如果您需要将$id传递到转发的操作中,则需要在$_GET数组中设置值:

$_GET['id'] = 'some id';

但是使用forward()基本上总是表示应用程序设计不良-我建议将共享逻辑提取到单独的方法/组件中,并避免使用forward()或直接调用控制器操作。

答案 1 :(得分:-1)

您可以尝试:

$this->forward('/otherCtrl/view/id/'.$id);

查询字符串取决于您的URL设置。