TP5路由跨模块url生成存在问题是否BUG否?

浏览:124 发布日期:2019/07/27 分类:求助交流
问题描述:
admin模块绑定域名为:a.xxx.com
member模块绑定域名为:m.xxx.com
index模块不绑定域名
现在在admin模块的控制器 生成一个没有绑定域名的index模块的url地址如使用:url('index/Index/index'); 会出现 http://a.xxx.com/index/index/index 显然这不是我们需要的 操作一个绑定域名的模块生成如 member的没有问题
发现问题出现在Url.php 的 parseUrl()方法 修改parseUrl()方法以下代码可临时解决:找到 if ($match)  加上else ,代码如下:
if ($match) {
    $domain = current($match);
    foreach ($match as $item) {
        if (0 === strpos($current, $item)) {
            $domain = $item;
        }
    }
    self::$bindCheck = true;
    $url = substr($url, $pos[$domain]);
} else {
    //分割
    $urlarr = explode('/', $url);
    //如果包含模块项
    if (count($urlarr) >= 3) {
        //如果生成的url地址模块不是当前模块
        if ($urlarr[0] !== Request::instance()->module()) {
            //指定一个网站的默认根域名
            $domain = Config::get('web_domain_root');
        }
    }
}
然后在配置文件加上一个配置:
'web_domain_root' => 'www.xxx.com',
上面的生成url问题就会变成:http://www.xxx.com/index/index/index
如果上面的问题是我操作问题,请告知,因为我不喜欢修改核心,如果不是请修复后告知!
最佳答案
评论( 相关
后面还有条评论,点击查看>>