Yii2 render url mit query-Parametern
Muss ich hinzufügen, dass einige parameter, um url durch Verwendung von render in Yii2-controller Aktion. Zum Beispiel add cat=all parameter, um folgende url:
localhost/sell/frontend/web/index.php?r=product/index
- und dies ist meine index-Aktion :
return $this->render('index', [
'product' => $product,
]);
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie erstellen, die URL wie folgt:
Können Sie die Umleitung im controller wie folgt:
Dann machen Sie Ihre Ansicht.
toRoute
machen wird:/product/index?1%5Bcat%5D=all
in die Beispiele, die hier bereitgestellt werden, weil es nicht erlauben sub-arrays, docsGenerieren, die url mit der Yii2 yii\helpers\Url
to()
odertoRoute()
Methode:$url = yii\helpers\Url::to(['product/index', 'cat' => 'all']);
oder:
$url = yii\helpers\Url::toRoute(['product/index', 'cat' => 'all']);
Kann man dann umleiten in controller:
return $this->redirect($url);
Beachten Sie auch, dass der controller
redirect()
Methode ist lediglich eine Verknüpfung zuyii\web\Response::redirect()
, die wiederum gibt es erste argument:yii\helpers\Url::to()
, so können Sie füttern Ihre route-array direkt in etwa so:return $this->redirect(['product/index', 'cat' => 'all']);
Bitte Beachten Sie: die andere Antwort von @ali-masudianpour kann richtig gewesen in frühesten Versionen von Yii2, aber in späteren Versionen von Yii2 (einschließlich der neuesten - 2.0.15 zum Zeitpunkt des Schreibens), die Url-helper-Methoden akzeptieren nur eindimensionale arrays, die wiederum ging in
yii\web\UrlManager
Methoden wie createUrl.Können Sie machen, redirect-route in den controller wie diesem: