2012-05-17 5 views
3

В моей Bootstrap у меня естьZend Framework: Маршрут собрать и получить параметры

$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: они выиграли» t быть рассмотренным в здании ссылки, и это то, что я действительно хочу.

Пример: получить доступ к 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 

Любые идеи?

+0

dup: http://stackoverflow.com/questions/2288268/zend-framework-need-to-access-a-get-parameter-from-a-view – ilanco

+0

Какой url вы на самом деле получаете и как он отличается от чего вы ожидаете? – vascowhite

+0

@ilanco, это не dup, речь идет не о том, как получить значение параметра, а о сборке URL-адресов, формировании существующих параметров GET. –

ответ

2

Конечно одно решение (с Apache) будет назвать это, на мой взгляд:

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

, но вы не можете быть уверены, что это всегда будет включена в переменной $ _SERVER.

Смежные вопросы