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',...))

アピ yii 1アピ 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()。ただし、同様の状況があり、セッションストレージを使用して解決しました。

当然、現在のセッションには からアクセスできますYii::$app->session。以下は、2 つの別個のコントローラー アクションで使用する例です。

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 に答える