Kohana 3.2 Route :: get

时间:2012-04-17 23:37:26

标签: kohana kohana-3.2

我正在尝试在循环内的视图中添加kohana中的简单链接。

这是我的代码:

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

现在返回root的链接,因为

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

返回一个空字符串。

现在如果我修改我的Route :: get to:

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

我得到了正确的链接。

问题:为什么Kohana无法获得正确的链接,因为我知道在我的bootstrap中我有以下内容:

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"

1 个答案:

答案 0 :(得分:1)

由于Kohana 3.2 doc(http://kohanaframework.org/3.2/guide/api/Route#uri)Route::uri() method Generates a URI for the current route based on the parameters given.。因此,如果您希望这个工作,您必须定义所有路由参数。