私のlayout-scriptで、URLビューヘルパーを使用して、現在のURLに[?|&] lang=enを追加してリンクを作成したいと思います。だから、私はこれを起こさせたい:
http:// localhost / user / edit / 1 => http:// localhost / user / edit / 1?lang = en
http:// localhost / index?page = 2 => http:// localhost / index?page = 2&lang = en
Zend Frameworkが提案する解決策を試しました:現在のページのURLにクエリ文字列を追加し、ルーターに直接アクセスしますが、それは機能します。
私のレイアウトスクリプトには次のものが含まれています。
<a href="<?=$this->escape( $this->url( array('lang'=>'en')) )?>">English</a>
デフォルトルートを使用すると/lang/ enが追加されますが、別のルートを使用すると何も追加されません。
それで、私がURLを解析しなくても、Zendでこれを行う方法はありますか?
編集
間違った説明でごめんなさい。いいえ、カスタムルーターは作成していません。他のルートを追加しました。私の悪い。動作しないルートの1つは次のとおりです。
$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);
}