32

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

成功插入数据库后,我正在使用重定向页面到另一个控制器

$this->redirect($this->createUrl('controller/action'));

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

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

4

4 回答 4

64

尝试:

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

api yii 1 , api yii 2

于 2012-12-05T06:10:48.190 回答
2

试试这个:

Yii::$app->response->redirect(['site/dashboard','id' => 1, 'var1' => 'test']);
于 2016-05-09T13:00:12.560 回答
2

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

当然,您可以通过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

更多信息请参考官方类文档。

于 2016-08-03T19:03:25.043 回答
0

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

$this->redirect($_PHP['SELF']);
于 2017-03-31T09:53:47.677 回答