Kohana URL混乱

时间:2011-04-12 00:50:43

标签: kohana kohana-3

我的bootstrap.php文件如下所示,所有代码都嵌入了welcome controller-> action_index。

Kohana::init(array(
    'base_url'   => '/kohana/',
    'index' => 'index.php'
));

好的,如果我将以下内容放入action_index

form::open('test');

行动 /kohana/index.php/test 所以链接似乎是你的root安装位置绝对的,当我在action_index index.php中嵌入链接时接受!!!

html::anchor('controller');

href是 / kohana / controller 而非 /kohana/index.php/controller

现在,如果我把

url::site('controller');

返回的值是 /kohana/index.php/controller

所以我想我会用

html::anchor(url::site('controller'));

但是href现在等于 http://localhost/kohana/kohana/index.php/controller

世界上发生了什么,我该如何解决?

Kohana网址系统似乎不直观且错误。

1 个答案:

答案 0 :(得分:1)

似乎它是HTML::anchor实施中的某种错误。

这是因为html.php(v3.1.2)

的第127行
$uri = URL::site($uri, $protocol, $index);

根据默认$index函数值,此行FALSE值为anchor

public static function anchor($uri, $title = NULL, array $attributes = NULL, $protocol = NULL, $index = FALSE)

所以你现在所能做的就是 - 手动传递第五个参数为true,如:

html::anchor('controller', null, null, null, true);

或使用自定义类扩展Kohana_HTML,如:

class HTML extends Kohana_HTML
{
    public static function anchor($uri, $title = NULL, array $attributes = NULL, $protocol = NULL, $index = TRUE)
    {
        return parent::anchor($uri, $title, $attributes, $protocol, $index);
    }
}

或填写kohana bugtracker上的错误,以便ko devteam决定做什么。