Параметр в обработчике маршрута в Kohana 3.0 возвращает пустое значение - PullRequest
0 голосов
/ 30 марта 2011

Я сейчас нахожусь в процессе написания собственного routeHandler в Kohana 3.0.В основном, большая часть моего сайта связана с определенными элементами, поэтому вместо загрузки контроллеров вместо действий появляются идентификаторы, а в URL я бы предпочел просто имя.Что, конечно, означает, что мне нужно манипулировать маршрутами.

Мой загрузчик содержит следующее:

Route::set('routeHandler', '(<url>)',
    array(
        'url' => '[a-zA-Z0-9_/-]+',
    ))
    ->defaults(array(
            'controller' => 'routeHandler',
            'action'     => 'index',
    ));

Это перенаправляет меня на мой контроллер routeHandler.

Внутри контроллера язатем установите еще несколько маршрутов и в конечном итоге сделайте новый запрос.Однако, когда дело доходит до передачи URI, оно кажется пустым.

 $this->request->param('uri'); // Comes back empty?

Когда я распечатываю запрос, я получаю следующую информацию:

Request Object 
( 
   [route] => Route Object 
       ( 
           [_uri:protected] => () 
           [_regex:protected] => Array 
               ( 
                   [url] => [a-zA-Z0-9_/-]+ 
               ) 
           [_defaults:protected] => Array 
               ( 
                   [controller] => routeHandler 
                   [action] => index  
               ) 
           [_route_regex:protected] => #^(?:(?P[a-zA-Z0-9_/-]+))?$#uD 
        ) 
   [status] => 200 
   [response] => 
   [headers] => Array 
       ( 
           [Content-Type] => text/html; charset=utf-8 
       ) 
   [directory] => 
   [controller] => routeHandler 
   [action] => index 
   [uri] => 
   [_params:protected] => Array 
       ( 
       ) 
)

Есть ли что-то, что у меня естьпропустил мой загрузчик?
Я также заметил потерю определенных переменных, установленных в загрузчике, таких как base_url.

Любая помощь будет принята с благодарностью.

1 Ответ

3 голосов
/ 30 марта 2011

Поскольку в вашем маршруте указан параметр url, а не uri, попробуйте:

$this->request->param('url');
...