it-swarm-eu.dev

jak przekazać parametr przekierowania w yii

Używam frameworków Yii dla mojego projektu; 

Przekierowuję stronę po udanym wstawieniu do bazy danych za pomocą innego kontrolera 

$ this-> redirect ($ this-> createUrl ('kontroler/akcja'));

Podczas przekierowania możliwe jest przekazanie dowolnych parametrów tak jak w renderowaniu, 

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

29
Abhi

Próbować:

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

api yii 1 , api yii 2

56
driver_by

Możesz przekazać tylko parametry GET w Yii 2 redirect(). Miałem jednak podobną sytuację i rozwiązałem ją, używając pamięci Sesji.

Oczywiście możesz uzyskać dostęp do bieżącej sesji za pomocą Yii::$app->session. Oto przykład użycia go w dwóch oddzielnych akcjach kontrolera:

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
    ]);
}

Teraz powinieneś mieć dostęp do $param wewnątrz widoku two.

Więcej informacji można znaleźć w oficjalnej dokumentacji klasy.

2
bds

spróbuj tego:

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

Aby przekierować do tej samej akcji ze wszystkimi parametrami, które już to mają, działa dla mnie.

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