Кохана 3.2 Route::get

Я пытаюсь добавить простые ссылки в кохане внутри представления внутри цикла.

Вот код, который у меня есть:

echo HTML::anchor(Route::get('parent')->uri(array('id' => $parent->id)), HTML::chars($parent->email))

Теперь это возвращает ссылку на корень, потому что

Route::get('parent')->uri(array('id' => $parent->id)

возвращает пустую строку.

Теперь, если я изменю свой Route::get to :

Route::get('parent')->uri(array(
                      'controller' => 'parent' , 
                      'action'     => 'index'  , 
                      'id'         =>  $parent->id))

Я получаю правильную ссылку.

Вопрос: Почему Kohana не может получить правильную ссылку, зная, что в моем бутстрапе есть следующее:

Route::set('parent', '(<controller>(/<action>(/<id>)))')
->defaults(array(
'controller' => 'parent',
'action'     => 'index',
));

И это: Route::get('parent') возвращает:

: object(Route) = 
  _callback: undefined = NULL
  _uri: string = "(<controller>(/<action>(/<id>)))"
  _regex: array = 
  _defaults: array = 
    controller: string = "parent"
    action: string = "index"
  _route_regex: string = "#^(?:(?P<controller>[^/.,;?\\n]++)(?:/(?P<action>[^/.,;?\\n]++)(?:/(?P<id>[^/.,;?\\n]++))?)?)?\$#uD"

person Tarek    schedule 17.04.2012    source источник


Ответы (1)


Благодаря документу Kohana 3.2 (http://kohanaframework.org/3.2/guide/api/Route#uri) Route::uri() method Generates a URI for the current route based on the parameters given.. Поэтому, если вы хотите, чтобы это работало, вы должны определить ВСЕ параметры маршрута.

person s.webbandit    schedule 18.04.2012