Web\Url: small fixes, allow override queryString

This commit is contained in:
Thomas Gelf 2014-06-20 12:41:16 +02:00
parent 5dfd4aedac
commit f498cd0c81
2 changed files with 10 additions and 6 deletions

View File

@ -174,9 +174,7 @@ class Url
} }
// TODO: This has been used by former filter implementation, remove it: // TODO: This has been used by former filter implementation, remove it:
if (isset($urlParts['query'])) { if (isset($urlParts['query'])) {
$urlParams = array(); $params = UrlParams::fromQueryString($urlParts['query'])->addValues($params);
parse_str($urlParts['query'], $urlParams);
$params = array_merge($urlParams, $params);
} }
$fragment = self::getUrlFragment($url); $fragment = self::getUrlFragment($url);
@ -312,6 +310,12 @@ class Url
} }
} }
public function setQueryString($queryString)
{
$this->params = UrlParams::fromQueryString($queryString);
return $this;
}
public function getQueryString() public function getQueryString()
{ {
return (string) $this->params; return (string) $this->params;

View File

@ -123,7 +123,7 @@ class UrlParams
* *
* @return self * @return self
*/ */
public function add($param, $value) public function add($param, $value = true)
{ {
$this->params[] = array($param, $this->cleanupValue($value)); $this->params[] = array($param, $this->cleanupValue($value));
$this->indexLastOne(); $this->indexLastOne();
@ -145,11 +145,11 @@ class UrlParams
{ {
if ($values === null && is_array($param)) { if ($values === null && is_array($param)) {
foreach ($param as $k => $v) { foreach ($param as $k => $v) {
$this->addValue($k, $v); $this->add($k, $v);
} }
} else { } else {
foreach ($values as $value) { foreach ($values as $value) {
$this->addValue($param, $value); $this->add($param, $value);
} }
} }