web-dev-qa-db-ja.com

yiiでリダイレクト時にパラメーターを渡す方法

私はプロジェクトにYiiフレームワークを使用しています。

データベースへの挿入が成功した後、別のコントローラーにページをリダイレクトしています

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

リダイレクト中に、レンダリングの場合と同様に任意のパラメーターを渡すことができます。

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

30
Abhi

試してください:

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

api yii 1api yii 2

58
driver_by

これを試して:

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

GETパラメーターはYii 2 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
    ]);
}

これで、twoビュー内の$paramにアクセスできるようになります。

詳細については、公式のクラスドキュメントを参照してください。

2
bds

すでにこれを持っているすべてのパラメーターで同じアクションにリダイレクトすることは私にとってはうまくいきます。

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