根据您的评论,我认为您的路线是错误的。应该看起来更像这样:
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 模块。随意从我的存储库中获取它,您将能够测试您的路线。