Kohana URL путаница - PullRequest
       4

Kohana URL путаница

0 голосов
/ 12 апреля 2011

Мой файл bootstrap.php выглядит следующим образом, и весь код вставляется в welcome controller-> action_index.

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

Хорошо, если я добавлю следующее в action_index

form::open('test');

действие / kohana / index.php / test .
Таким образом, ссылки кажутся абсолютными для вашего корневого каталога установки, примите, когда я вставлю ссылки в action_index index.php !!!

html::anchor('controller');

href это / кохана / контроллер не / кохана / index.php / controller .

Теперь, если я поставлю

url::site('controller');

возвращаемое значение равно / kohana / index.php / controller .

Так что я решил, что просто использовал бы

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

Но href теперь равенна http://localhost/kohana/kohana/index.php/controller.

Что происходит в мире и как я могу это исправить?

Система URL Kohana кажется совершенно неинтуитивной и неправильной.

1 Ответ

1 голос
/ 12 апреля 2011

Похоже, что это какая-то ошибка в реализации HTML::anchor.

Это происходит из-за 127-й строки 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)

Теперь все, что вы можете сделать, - это передать вручную 5-й аргумент как 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 , чтобы ко devteam решить, что делать.

...