我正在使用基于 url 的语言,并且我在 URL 中有一个带有传入参数的页面。
我不喜欢 URL 中的查询字符串 ('?x=y') 或命名参数 ('x:y'),所以我使用http://localhost/cakeapp/us/controller/action/param1/param2/param3
在我的AppController中,我正在检查 URL 是否定义了语言,如果没有定义语言(例如用户请求http://localhost/cakeapp/controller/action/param1/param2/param3),那么我想简单地重定向用户到具有相同参数的语言定义的 URL。
简而言之:我想重定向:
http://localhost/cakeapp/controller/action/param1/param2/param3
至
http://localhost/cakeapp/us/controller/action/param1/param2/param3
我用;
$this->重定向(
Router::url(array('language' => $this->Session->read('Config.language'), 'base' => false))
);
但它会将用户重定向到http://localhost/cakeapp/us/controller/action而没有参数。
有没有办法使用 Router::url 和传入的$this->passedArgs变量来构建 url。