Hallo,
gibt es eine elegante Möglichkeit, eine URL, die ich mittels yii erzeuge (z.B. createUrl) um die aktuellen GET Parameter zu erweitern? Also um jene, mit der die action aufgerufen wurde.
Angenommen ich rufe die Action wie folgt auf:
http://localhost/seite/index?wert1=1&wert2=2
die Index-Action soll nun (u.a.) einen Link bauen, in dem die o.g. Get Parameter wieder gesetzt sind, sofern es sie gibt und weitere Parameter anfügen.
Alternative 1:
CController::createUrl("index",array("wert3"=>"3")
liefert: http://localhost/seite/index?wert3=3
Alternative 2:
CController::createUrl("index",array("wert1"=>$_GET["wert1"],"wert1"=>$_GET["wert1"],"wert3"=>"3")
liefert: http://localhost/seite/index?wert1=1&wert2=2&wert3=3
Sieht im ersten Moment gut aus.
Problem: 1.) muss ich beim createUrl wissen, welche Variablen alle in Frage kämen und 2.) könnte auch eine URL wie folgt rauskommen: http://localhost/seite/index?wert1=&wert2=&wert3=3 . Nämlich dann, wenn wert1 und wert2 nicht gesetzt sind. Das ist dann problematisch, denn isset($_GET["wert1"]) liefert trotzdem true.
Alternative 3:
CController::createUrl("index",array($_GET,"wert3"=>"3")
Liefert auch im 1. Durchgang den richtigen Wert.
http://localhost/seite/index?wert1=1&wert2=2&wert3=3
Im 2. Durchgang jedoch: http://localhost/seite/index?wert1=1&wert2=2&wert3=3&wert3=3
Im 3. Durchgang: http://localhost/seite/index?wert1=1&wert2=2&wert3=3&wert3=3&wert3=3
Auch nicht das, was ich suche.
Bevor ich nun eine neue Funktion schreibe die Frage: gibt es da vielleicht schon eine Lösung bei yii?
Danke und Gruß