Yii2 - createUrl() mit array params?

Entsprechend der Yii2 Dokumentation , soll ich Gebäude die URL wie folgt aus:

$appUrl = Yii::$app->urlManager->createUrl([Yii::$app->controller->id . '/' . Yii::$app->controller->action->id,'p1' => 'v1','p2' => 'v2'] , null);

It-Ausgänge:

/index.php?r=Benutzer%2Findex&p1=v1&p2=v2

Welche ist die richtige Ausgabe. Nun, was ist, wenn ich ein array params, dass ich direkt weitergeben wollen, um die createUrl() Methode? Der folgende code erläutert mein problem:

$arrayParams = ['p1' => 'v1' , 'p2' => 'v2'];
$appUrl = Yii::$app->urlManager->createUrl([Yii::$app->controller->id . '/' . Yii::$app->controller->action->id,$arrayParams] , null);

Die Ausgabe in diesem Fall:

/index.php?r=users/index&1[p1]=v1&1[p2] v2=

In der Erwägung, dass die Ausgabe sollte sein:

index.php?r=users/index&p1=v1&p2=v2

Bitte beachten Sie, dass $arrayParams erzeugt wird, durch eine andere Methode, und ich kann nicht extrahiert alle Schlüssel und Werte, und geben Sie Sie nacheinander in createUrl(). Das wäre sehr teuer IMO. Wie kann ich erreichen, das mit Yii ' s api?

  • Für nur einen parameter: <?= Yii::$app->urlManager->createUrl(["post/view","id"=>$post->id]) ?>
  • Es ist gut Url::to() statt Yii::$app->urlManager->createUrl()
  • Ich bin damit einverstanden. Ich war relativ neu in Yii 2, wenn ich fragte diese. Ich hatte keine Ahnung, dass wir Url::to () - Methode zur Verfügung damals. Es ist kurz, und nicht mit dem $ - app, die ich mag.
  • Es ist für andere Menschen, die finden es. Denn ich war auf der Suche für diese Verknüpfung, wenn Sie hier kommen.
InformationsquelleAutor Gogol | 2015-07-15
Schreibe einen Kommentar