0

我正在尝试在循环内的视图内的 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 修改为:

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"
4

1 回答 1

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.。所以如果你想让它工作,你必须定义所有的路由参数。

于 2012-04-18T06:52:22.387 回答