mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-06 23:02:48 +08:00
改进自动路由标识生成 支持不同的路由规则 指向同一个路由标识,改进Url自动生成对路由标识的支持
This commit is contained in:
@@ -301,7 +301,7 @@ class Route
|
|||||||
}
|
}
|
||||||
$vars = self::parseVar($rule);
|
$vars = self::parseVar($rule);
|
||||||
if (isset($name)) {
|
if (isset($name)) {
|
||||||
self::$name[$name] = [$rule, $vars, self::$domain];
|
self::$name[$name][] = [$rule, $vars, self::$domain];
|
||||||
}
|
}
|
||||||
if ($group) {
|
if ($group) {
|
||||||
if ('*' != $type) {
|
if ('*' != $type) {
|
||||||
|
|||||||
@@ -234,18 +234,19 @@ class Url
|
|||||||
// 匹配路由地址
|
// 匹配路由地址
|
||||||
public static function getRuleUrl($rule, &$vars = [])
|
public static function getRuleUrl($rule, &$vars = [])
|
||||||
{
|
{
|
||||||
list($url, $pattern) = $rule;
|
foreach ($rule as $item) {
|
||||||
foreach ($pattern as $key => $val) {
|
list($url, $pattern) = $item;
|
||||||
if (isset($vars[$key])) {
|
foreach ($pattern as $key => $val) {
|
||||||
$url = str_replace(['[:' . $key . ']', '<' . $key . '?>', ':' . $key . '', '<' . $key . '>'], $vars[$key], $url);
|
if (isset($vars[$key])) {
|
||||||
unset($vars[$key]);
|
$url = str_replace(['[:' . $key . ']', '<' . $key . '?>', ':' . $key . '', '<' . $key . '>'], $vars[$key], $url);
|
||||||
} elseif (2 == $val) {
|
unset($vars[$key]);
|
||||||
$url = str_replace(['/[:' . $key . ']', '[:' . $key . ']', '<' . $key . '?>'], '', $url);
|
return $url;
|
||||||
} else {
|
} elseif (2 == $val) {
|
||||||
return false;
|
return str_replace(['/[:' . $key . ']', '[:' . $key . ']', '<' . $key . '?>'], '', $url);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $url;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 指定当前生成URL地址的root
|
// 指定当前生成URL地址的root
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ class urlTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
public function testBuildMethod()
|
public function testBuildMethod()
|
||||||
{
|
{
|
||||||
Route::get('blog/:id', ['\app\index\controller\blog', 'read']);
|
Route::get('blog/:id', '\app\index\controller\blog@read');
|
||||||
$this->assertEquals('/blog/10.html', Url::build('\app\index\controller\blog\read', 'id=10', 'html'));
|
$this->assertEquals('/blog/10.html', Url::build('\app\index\controller\blog\read', 'id=10', 'html'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user