można przekazać tylko dostać parametrów w Yii 2 redirect()
. Miałem jednak podobną sytuację i rozwiązałem ją, używając pamięci Session.
Naturalnie można uzyskać dostęp do bieżącej sesji za pośrednictwem Yii::$app->session
. Oto przykład użycia go w dwóch oddzielnych działań 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
]);
}
Więc teraz powinieneś być w stanie uzyskać dostęp $param
wewnątrz widoku two
.
Aby uzyskać więcej informacji, zapoznaj się z oficjalną dokumentacją klas.
Nie rozumiem, dlaczego ludzie nie odnoszą się do dokumentacji. A dokumentacja yiis jest na najwyższym poziomie w przeciwieństwie do innych frameworków. Po prostu wyślij ją jako tablicę, w której pierwszym elementem jest akcja kontrolera, a reszta to pary wartości klucza, które możesz pobrać jako zmienne GET. – itachi
@itachi dla mnie dokumentacja yii niezbyt czytelna –