Ответ 1
Try:
$this->redirect(array('controller/action', 'param1'=>'value1', 'param2'=>'value2',...))
Я использую структуру Yii для своего проекта;
Я перенаправляю страницу после успеха вставки в базу данных на другой контроллер, используя
$этом- > перенаправления ($ этом- > createUrl ( 'контроллер/действие'));
Во время перенаправления можно передавать любые параметры, как в рендере,
$this- > render ('selectRefiner', array ('param' = > $data)
Try:
$this->redirect(array('controller/action', 'param1'=>'value1', 'param2'=>'value2',...))
Вы можете передавать параметры GET только в Yii 2 redirect()
. Тем не менее, у меня была аналогичная ситуация, и я решил ее использовать хранилище сеансов.
Естественно, вы можете получить доступ к текущему сеансу через 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
.
За дополнительной информацией обратитесь к официальной документации по классам.
попробуйте следующее:
Yii::$app->response->redirect(['site/dashboard','id' => 1, 'var1' => 'test']);
Чтобы перенаправить в одно действие со всеми параметрами, которые уже есть, это работает для меня.
$this->redirect($_PHP['SELF']);