2

我找到了调试路线的代码。

$route = Route::get('default');
echo Kohana_Debug::dump($route->matches('en/start/index'));

当我在引导程序中使用代码时,会返回错误:

ErrorException [ Recoverable Error ]: 传递给 Kohana_Route::matches() 的参数 1 必须是 Request 的实例,给定字符串,

如何在 Kohana 3.3 中调试路由?

4

1 回答 1

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 的 devtools 模块,尽管它似乎在 Kohana 3.1.x 上停止了开发,并且不太可能在新版本中正常工作,但我个人没有使用它。

编辑

我已经努力并更新了Devtools 模块。随意从我的存储库中获取它,您将能够测试您的路线。

于 2013-02-22T07:41:21.273 回答