在我的布局脚本中,我希望创建一个链接,使用 url 视图助手将[?|&]lang=en附加到当前 url。所以,我希望这种情况发生:
http://localhost/user/edit/1 => http://localhost/user/edit/1?lang=en
http://localhost/index?page=2 => http://localhost/index?page =2&lang=zh
我已经尝试过建议的解决方案Zend Framework: Append query strings to current page url,直接访问路由器,但这确实有效。
我的布局脚本包含:
<a href="<?=$this->escape( $this->url( array('lang'=>'en')) )?>">English</a>
如果使用默认路由,它将附加/lang/en,但当使用另一个路由时,根本不会附加任何内容。
那么,有没有办法在 Zend 中做到这一点而无需我解析 url?
编辑
对不起我的错误解释。不,我还没有定制路由器。我刚刚添加了其他路线。我的错。一条行不通的路线是:
$Routes = array(
'user' => array(
'route' => 'admin/user/:mode/:id',
'defaults' => array('controller' => 'admin', 'action' => 'user', 'mode'=>'', 'id' => 0)
)
);
foreach( $Routes as $k=>$v ) {
$route = new Zend_Controller_Router_Route($v['route'], $v['defaults']);
$router->addRoute($k, $route);
}