Как получить URL с тире в Kohana 3.x - PullRequest
1 голос
/ 05 сентября 2011

Мне нужен URL-адрес, например http://example.com/controller/my-page-with-dashes

. Как мне получить URL-адрес в Кохане?Я попытался создать контроллер и назвал действие myPageWithDashes как в Zend Framework, но это не сработало.Есть идеи, как это сделать?

Ответы [ 3 ]

1 голос
/ 05 сентября 2011

Нет, вам просто нужно указать параметр регулярного выражения в вашем маршруте.

Прочитайте документы по маршрутам, это объясняет это: http://kohanaframework.org/3.2/guide/kohana/routing#regex

1 голос
/ 05 сентября 2011

Как сказал Зомбор, измените регулярное выражение маршрута:

Маршрут:

Route::set('default', 'controller/<url>)', array('url' => '[-a-z0-9]+'))
    ->defaults(array(
        'controller' => 'page',
        'action' => 'index',
  ));

Контроллер:

Class Controller_Page {

    public function action_index()
    {
        $url = $this->request->param('url');
    }
}

array('url' => '[-a-z0-9]+') Эта часть меняет то, чторазрешено в параметре URL.

0 голосов
/ 05 сентября 2011

Скопируйте файл system/classes/kohana/request/client/internal.php в папку вашего приложения - application/classes/kohana/request/client/internal.php. Затем измените строку 106 с:

$action = $request->action();

до:

$action = str_replace('-', '_', $request->action());
...