So che esiste già una risposta accettata, ma la inserirò ancora per ridurre il peso dei principianti come me.
Io uso smarty come visualizzatore di rendering e in smarty non è possibile utilizzare i codici php nelle viste, quindi, tutto deve essere eseguito nel controller, allocandolo in variabili e poi passandole alle viste.
È possibile utilizzare questo:
$url = $this->url()->fromRoute('route',array('name'=>'route-name'));
Se si sta seguendo il tutorial di Zend 2, sarà simile a questo:
$url = $this->url()->fromRoute('album',array('action'=>'add'));
$url = $this->url()->fromRoute('album',array('action'=>'edit'));
$url = $this->url()->fromRoute('album',array('action'=>'delete'));
questo avrà un valore di:
/zf2/index.php/album/add
/zf2/index.php/album/edit
/zf2/index.php/album/delete
Come si può vedere, è necessario aggiungere il nome del server ad esso, che è possibile fare utilizzando questi prima della generazione del percorso url:
$url = $uri = $this->getRequest()->getUri();
$url = sprintf('%s://%s', $uri->getScheme(), $uri->getHost());
Nel complesso, il frammento di codice dovrebbe essere simile a questo:
$url = $uri = $this->getRequest()->getUri();
$url = sprintf('%s://%s', $uri->getScheme(), $uri->getHost());
$url .= $this->url()->fromRoute('album',array('action'=>'add'));
produrre:
http://yourservername/zf2/index.php/album/add
Spero che questo aiuti gli utenti principianti ZF2
non è vero. puoi usare view helper nel controller, ma ofc non è una buona idea: $ uVH = $ this-> getServiceLocator() -> get ('viewhelpermanager') -> get ('url'); $ routeUrl = $ uvh ('route-name', array ('param1' => 'param1')); ecc –