如何在yii中传递重定向参数

时间:2012-12-05 05:59:41

标签: php yii

我正在为我的项目使用Yii框架;

我在使用

将数据库插入另一个控制器成功后重定向页面
  

$这 - >重定向($这 - > createUrl( '控制器/动作'));

在重定向期间,可以像渲染一样传递任何参数,

  

$ this-> render('selectRefiner',array('param'=> $ data)

4 个答案:

答案 0 :(得分:57)

尝试:

$this->redirect(array('controller/action', 'param1'=>'value1', 'param2'=>'value2',...))

api yii 1api yii 2

答案 1 :(得分:2)

试试这个:

Yii::$app->response->redirect(['site/dashboard','id' => 1, 'var1' => 'test']);

答案 2 :(得分:2)

您只能在Yii 2 redirect()中传递GET参数。但是,我有类似的情况,我通过使用会话存储解决了它。

当然,您可以通过Yii::$app->session访问当前会话。以下是在两个单独的控制器操作中使用它的示例:

public function actionOne() {
    // Check if the Session is Open, and Open it if it isn't Open already
    if (!Yii::$app->session->getIsActive()) {
        Yii::$app->session->open();
    }
    Yii::$app->session['someParameter'] = 'Bool/String/Array...';
    Yii::$app->session->close();
    $this->redirect(['site/two']);
}

public function actionTwo() {
    if (isset(Yii::$app->session['someParameter']) {
       $param = Yii::$app->session['someParameter'];
    } else {
       $param = null;
    }
    $this->render('two', [
        'param' => $param
    ]);
}

现在,您应该可以在$param视图中访问two

有关详细信息,请参阅官方课程文档。

答案 3 :(得分:0)

使用已经具有此功能的所有参数重定向到相同的操作。

$this->redirect($_PHP['SELF']);