我的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网址系统似乎不直观且错误。
答案 0 :(得分:1)
似乎它是HTML::anchor
实施中的某种错误。
这是因为html.php
(v3.1.2)
$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决定做什么。