Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework]Problem z routingiem
Forum PHP.pl > Forum > PHP > Frameworki
MaciekPierwszy
Witam

Dodałem sobie parametr języka w bootstrapie w następujący sposób

  1. $router->addRoute(
  2. 'lang',
  3. new Zend_Controller_Router_Route('/:lang/',
  4. array('lang' => ':lang')
  5. )
  6. );


Niestety z jakis nieznanych mi powodow nie wypisuje mi wtedy action w formularzach a robie to tak
  1. $url = $view->url(array(
  2. 'controller' => 'auth', 'action' => 'register'
  3. ));
  4. $this->setAction($url);


dlaczego tak się dzieje??
irmidjusz
otwierasz dokumentację Zend_View_Helper_url i czytasz:

Generates an url given the name of a route.

return: Url for the link href attribute.
access: public

string url ([ $urlOptions = array()], [mixed $name = null], [bool $reset = false], [ $encode = true])

array $urlOptions: Options passed to the assemble method of the Route object.
mixed $name: The name of a Route to use. If null it will use the current Route
bool $reset: Whether or not to reset the route defaults with those provided
$encode


podpowiedź: drugi parametr to nazwa route
MaciekPierwszy
mam teraz taki problem że przestał mi działac link typu

/profile/show/id/1
poniewaz zend tak to zaczął traktowac

Request Parameters:

array (
'lang' => 'profile',
'module' => 'show',
'controller' => 'id',
'action' => '1',
)


wszystko działa jak dodam w bootstrapie:
  1. $router->addRoute(
  2. 'controlleraction',
  3. new Zend_Controller_Router_Route('/:controller/:action/id/:id'
  4.  
  5. )
  6. );


ale jak zrobic zeby działała zawsze reguła
controller/action/zmienna1/wartosc1/zmienna2/wartosc2/ i tak dalej??
CuteOne
Zend sam w sobie (bez żadnych ustawień) definiuje ścieżki. To co pokazałeś to właśnie taka ścieżka - /controller/action/param1/value1

Usuń wszystko co jest związane z routerem. Następnie w pliku .phtml dodaj np.
  1. echo $this->url(array(
  2. 'controller' => 'index',
  3. 'action' => 'index',
  4. 'lang' => 'pl'), null, true);

I sprawdź co wygeneruje, powinno się wyświetlić '/index/index/lang/pl'
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.