Подтвердить что ты не робот

Как передать параметр при перенаправлении в yii

Я использую структуру Yii для своего проекта;

Я перенаправляю страницу после успеха вставки в базу данных на другой контроллер, используя

$этом- > перенаправления ($ этом- > createUrl ( 'контроллер/действие'));

Во время перенаправления можно передавать любые параметры, как в рендере,

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

4b9b3361

Ответ 1

Try:

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

api yii 1, api yii 2

Ответ 2

Вы можете передавать параметры 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.

За дополнительной информацией обратитесь к официальной документации по классам.

Ответ 3

попробуйте следующее:

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

Ответ 4

Чтобы перенаправить в одно действие со всеми параметрами, которые уже есть, это работает для меня.

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