我找到了调试路线的代码。
$route = Route::get('default');
echo Kohana_Debug::dump($route->matches('en/start/index'));
当我在引导程序中使用代码时,会返回错误:
ErrorException [可恢复错误]:参数1传递给 Kohana_Route :: matches()必须是Request的实例,给定字符串,
如何在Kohana 3.3中调试路由?
答案 0 :(得分:1)
根据您的评论,我认为您的路线错误。应该看起来更像这样:
Route::set('default', '(<lang>(/<controller>(/<action>(/<id>))))
注意括号位于<lang>
附近。
要测试URL是否与Route匹配,您无法将字符串传递给$my_route->match()
方法。虽然它确实说你可以在docs中,但该方法只接受Request对象。这将使您的代码看起来更像:
$route = Route::get('default');
$request = Request::factory('en/start/index');
echo Debug::dump($route->matches($request));
上述内容应在失败时输出FALSE
或在成功时输出所有路由参数的array
。
如果您需要更强大的工具,您可能需要查看bluehawk's devtools module,虽然看起来它的开发在Kohana 3.1.x停止并且在新版本中不太可能正常工作,但我没有亲自使用它
修改强>
我已经完成并努力并更新了Devtools module。随意从my repository抓取它,你就可以测试你的路线了。