mirror of
https://github.com/skipperbent/simple-php-router.git
synced 2026-06-17 08:47:52 +00:00
@@ -124,14 +124,16 @@ abstract class LoadableRoute extends Route implements ILoadableRoute
|
|||||||
for ($i = $max; $i >= 0; $i--) {
|
for ($i = $max; $i >= 0; $i--) {
|
||||||
$param = $keys[$i];
|
$param = $keys[$i];
|
||||||
|
|
||||||
if($parameters !== null) {
|
if ($parameters === '' || (is_array($parameters) && count($parameters) === 0)) {
|
||||||
$parameters = (array)$parameters;
|
$value = '';
|
||||||
$value = array_key_exists($param, $parameters) ? $parameters[$param] : $params[$param];
|
} else {
|
||||||
}
|
$p = (array)$parameters;
|
||||||
|
$value = array_key_exists($param, $p) ? $p[$param] : $params[$param];
|
||||||
|
|
||||||
/* If parameter is specifically set to null - use the original-defined value */
|
/* If parameter is specifically set to null - use the original-defined value */
|
||||||
if ($value === null && isset($this->originalParameters[$param])) {
|
if ($value === null && isset($this->originalParameters[$param])) {
|
||||||
$value = $this->originalParameters[$param];
|
$value = $this->originalParameters[$param];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stripos($url, $param1) !== false || stripos($url, $param) !== false) {
|
if (stripos($url, $param1) !== false || stripos($url, $param) !== false) {
|
||||||
@@ -142,6 +144,7 @@ abstract class LoadableRoute extends Route implements ILoadableRoute
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$url = '/' . ltrim($url, '/');
|
||||||
$url .= join('/', $unknownParams);
|
$url .= join('/', $unknownParams);
|
||||||
|
|
||||||
return rtrim($url, '/') . '/';
|
return rtrim($url, '/') . '/';
|
||||||
|
|||||||
@@ -28,6 +28,21 @@ class RouterUrlTest extends PHPUnit_Framework_TestCase
|
|||||||
TestRouter::router()->reset();
|
TestRouter::router()->reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testUnicodeCharacters()
|
||||||
|
{
|
||||||
|
// Test spanish characters
|
||||||
|
TestRouter::get('/cursos/listado/{listado?}/{category?}', 'DummyController@method1', ['defaultParameterRegex' => '[\w\p{L}\s-]+']);
|
||||||
|
TestRouter::debugNoReset('/cursos/listado/especialidad/cirugía local', 'get');
|
||||||
|
$this->assertEquals('/cursos/listado/{listado?}/{category?}/', TestRouter::router()->getRequest()->getLoadedRoute()->getUrl());
|
||||||
|
|
||||||
|
// Test danish characters
|
||||||
|
TestRouter::get('/kategori/økse', 'DummyController@method1', ['defaultParameterRegex' => '[\w\ø]+']);
|
||||||
|
TestRouter::debugNoReset('/kategori/økse', 'get');
|
||||||
|
$this->assertEquals('/kategori/økse/', TestRouter::router()->getRequest()->getLoadedRoute()->getUrl());
|
||||||
|
|
||||||
|
TestRouter::router()->reset();
|
||||||
|
}
|
||||||
|
|
||||||
public function testOptionalParameters()
|
public function testOptionalParameters()
|
||||||
{
|
{
|
||||||
TestRouter::get('/aviso/legal', 'DummyController@method1');
|
TestRouter::get('/aviso/legal', 'DummyController@method1');
|
||||||
|
|||||||
Reference in New Issue
Block a user