3

私のBootstrapには

$route = new Zend_Controller_Router_Route(
    ':language/:country/:controller/:action/*', 
    array(
        'language' => 'en',
        'country' => 'us',
        'controller' => 'bicycle',
        'action' => 'index'
    ),
    array(
        'language' => '[a-z][a-z]',
        'country' => '[a-z][a-z]'
    )
);

私の見解のどこかに私は持っています

echo $this->url(array('page'=>2));
//actually this translated to $route->assemble(array('page' => 2), null, false);

問題は、いくつかの GET パラメータがある場合です。それらはリンクの構築では考慮されません。これが私が実際に望んでいることです。

例: URL にアクセスします (ブラウザーで)

http://localhost/myproject/en/us/controller/action/?get1=gval1&get2=gval2&get3=gval3 

組み立てられたURLは

http://localhost/myproject/en/us/controller/action/page/2 

それ以外の

http://localhost/myproject/en/us/controller/action/page/2/get1/gval1/get2/gval2/get3/gval3/ 

または(私は次のものを好むだろう)

http://localhost/myproject/en/us/controller/action/page/2/?get1=gval1&get2=gval2&get3=gval3

何か案は?

4

1 に答える 1

2

もちろん、(Apacheを使用した)1つの解決策は、私の見解ではこれを呼び出すことです:

$this->url(array(page=>2)) . ($_SERVER['QUERY_STRING']?$_SERVER['QUERY_STRING']:"")

ただし、これが常に $_SERVER 変数に含まれているかどうかはわかりません。

于 2012-05-18T17:36:43.190 に答える