我有一个如下所示的路线设置:
Route::set('my_route', 'r/<controller>(/<action>)(/(<name>-)<hash>)', array(
'controller' => '[a-z]+',
'action' => '[a-z]+',
'hash' => '\w{13}',
'name' => '[a-z]+',
))->defaults(array(
'directory' => 'my_dir',
'controller' => 'welcome',
'action' => 'index',
'name' => null,
));
哪个单独工作。当我尝试从路由构建 URL 时出现问题,如下所示:
return Route::url('my_route', array(
'action' => 'test',
));
我收到此错误消息:
Kohana_Exception [ 0 ]: Required route parameter not passed: name
因此,如果我将 name 设置为null
,我会得到相同的结果。如果我将 name 设置为false
,则没有错误消息,但 url 如下所示:
/r/welcome/test/-
注意最后的 - ?现在我可以把它去掉,但我希望有更好的方法。