我正在尝试在循环内的视图中添加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"
答案 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.
。因此,如果您希望这个工作,您必须定义所有路由参数。