J'utilise le framework Yii pour mon projet;
Je suis en train de rediriger une page après l’insertion dans la base de données vers un autre contrôleur en utilisant
$ this-> redirect ($ this-> createUrl ('controller/action'));
Pendant la redirection, est-il possible de passer n'importe quel paramètre comme dans le rendu,
$ this-> render ('selectRefiner', array ('param' => $ data)
Vous ne pouvez transmettre que les paramètres GET dans Yii 2 redirect()
. Cependant, j'ai eu une situation similaire et je l'ai résolue en utilisant le stockage de session.
Naturellement, vous pouvez accéder à la session en cours via Yii::$app->session
. Voici un exemple d'utilisation dans deux actions de contrôleur distinctes:
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
]);
}
Alors maintenant, vous devriez pouvoir accéder à $param
dans la vue two
.
Pour plus d'informations, reportez-vous à la documentation officielle de la classe.
essaye ça:
Yii::$app->response->redirect(['site/dashboard','id' => 1, 'var1' => 'test']);
Pour rediriger dans la même action avec tous les paramètres qui ont déjà cela fonctionne pour moi.
$this->redirect($_PHP['SELF']);