mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-01 12:42:48 +08:00
Route类的name方法支持批量设置
This commit is contained in:
@@ -59,5 +59,5 @@ return [
|
||||
'tag error' => '模板标签错误',
|
||||
'cache write error' => '缓存写入失败',
|
||||
'sae mc write error' => 'SAE mc 写入错误',
|
||||
'route name not exists' => '路由命名标识不存在',
|
||||
'route name not exists' => '路由标识不存在(或参数不够)',
|
||||
];
|
||||
|
||||
@@ -138,12 +138,14 @@ class Route
|
||||
/**
|
||||
* 设置路由绑定
|
||||
* @access public
|
||||
* @param string $name 路由命名标识
|
||||
* @param string|array $name 路由命名标识 数组表示批量设置
|
||||
* @return array
|
||||
*/
|
||||
public static function name($name = '')
|
||||
{
|
||||
if ('' === $name) {
|
||||
if (is_array($name)) {
|
||||
return self::$name = $name;
|
||||
} elseif ('' === $name) {
|
||||
return self::$name;
|
||||
} else {
|
||||
return isset(self::$name[$name]) ? self::$name[$name] : null;
|
||||
|
||||
@@ -22,11 +22,8 @@ class Url
|
||||
|
||||
/**
|
||||
* URL生成 支持路由反射
|
||||
* @param string $url URL表达式,
|
||||
* 格式:'[模块/控制器/操作]?参数1=值1&参数2=值2...@域名'
|
||||
* @控制器/操作?参数1=值1&参数2=值2...
|
||||
* \\命名空间类\\方法?参数1=值1&参数2=值2...
|
||||
* @param string|array $vars 传入的参数,支持数组和字符串
|
||||
* @param string $url 路由地址
|
||||
* @param string|array $vars 参数(支持数组和字符串)a=val&b=val2... ['a'=>'val1', 'b'=>'val2']
|
||||
* @param string|bool $suffix 伪静态后缀,默认为true表示获取配置值
|
||||
* @param boolean|string $domain 是否显示域名 或者直接传入域名
|
||||
* @return string
|
||||
@@ -77,7 +74,7 @@ class Url
|
||||
}
|
||||
}
|
||||
if (!empty($rule) && $match = self::getRuleUrl($rule, $vars)) {
|
||||
// 匹配路由命名标识 快速生成
|
||||
// 匹配路由命名标识
|
||||
$url = $match[0];
|
||||
if (!empty($match[1])) {
|
||||
$domain = $match[1];
|
||||
@@ -90,7 +87,7 @@ class Url
|
||||
parse_str($info['query'], $params);
|
||||
$vars = array_merge($params, $vars);
|
||||
}
|
||||
// 路由不存在 直接解析
|
||||
// 路由标识不存在 直接解析
|
||||
$url = self::parseUrl($url, $domain);
|
||||
}
|
||||
|
||||
@@ -215,8 +212,7 @@ class Url
|
||||
} else {
|
||||
$domain .= strpos($domain, '.') ? '' : strstr($request->host(), '.');
|
||||
}
|
||||
$domain = ($request->isSsl() ? 'https://' : 'http://') . $domain;
|
||||
return $domain;
|
||||
return ($request->isSsl() ? 'https://' : 'http://') . $domain;
|
||||
}
|
||||
|
||||
// 解析URL后缀
|
||||
|
||||
@@ -23,6 +23,12 @@ use think\Url;
|
||||
class urlTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
Route::rules([]);
|
||||
Route::name([]);
|
||||
}
|
||||
|
||||
public function testBuildModule()
|
||||
{
|
||||
|
||||
@@ -70,7 +76,6 @@ class urlTest extends \PHPUnit_Framework_TestCase
|
||||
|
||||
public function testBuildNameRoute()
|
||||
{
|
||||
Route::rules([]);
|
||||
Route::get(['name', 'blog/:id'], 'index/blog');
|
||||
$this->assertEquals([['blog/:id', ['id' => 1], null]], Route::name('name'));
|
||||
Config::set('url_html_suffix', 'shtml');
|
||||
@@ -103,7 +108,6 @@ class urlTest extends \PHPUnit_Framework_TestCase
|
||||
Config::set('url_domain_deploy', false);
|
||||
Config::set('url_common_param', false);
|
||||
Url::root('/index.php');
|
||||
Route::rules([]);
|
||||
Route::get('blog/:id', 'index/blog/read');
|
||||
Config::set('url_html_suffix', 'shtml');
|
||||
$this->assertEquals('/index.php/blog/10/name/thinkphp.shtml', Url::build('index/blog/read?id=10&name=thinkphp'));
|
||||
|
||||
Reference in New Issue
Block a user