2013-04-02 30 views
8

nie mogę dowiedzieć się, aby wygenerować adres URL z wszędzie chcę, w Zend 2ZF2 - Generowanie URL z trasy

uzyskać działanie i kontroler, więc spróbuj tego:

$this->url('myControllerName', array('action' => 'myActionName')); 

Ale to zwrócić obiekt, chcę tylko pełny ciąg URL tej trasy

Ktoś może mi pomóc znaleźć właściwą drogę?

EDYCJA: według Stoyana, może popełniłem błąd na mojej trasie. tutaj jest częścią mojego module.config

'router' => array (
       'routes' => array (
         'indexqvm' => array (
           'type' => 'segment', 
           'options' => array (
             'route' => '/Indexqvm[/:action][/:id_event]', 
            'constraints' => array (
              'action' => '[a-zA-Z][a-zA-Z0-9_-]+', 
              'id_event' => '[0-9]+' 
            ), 
            'defaults' => array (
              'controller' => 'Qvm\Controller\Indexqvm', 
              'action' => 'index' 
            ) 
          ) 
        ), 

I moje wezwanie:

echo $this->url('indexqvm', array('action' => 'list-index')); 

błąd: połów fatal error: Przedmiot klasa Zend \ MVC \ Controller \ Plugin \ WWW nie może być przekonwertowane na ciąg

Odpowiedz

22

Użyj echa przed wywołaniem $this->url(...) (patrz poniżej), a to wyświetli cały adres URL.

<?php echo $this->url('route-name', $urlParams, $urlOptions); ?> 

Zauważ, że pierwszy paramter z url() to nazwa trasy, jak określono w pliku [module]/config/module.config.php.

Aby uzyskać więcej informacji na temat pomocnika widoku adresu URL ZF2, zobacz artykuł .

EDIT w odpowiedzi na zapytania edit:

Powyższa sekcja jest związana z użyciem zobaczyć URL pomocnika.

Jeśli chcesz URL w kontrolerze, potrzebujesz wtyczki kontrolera URL.

<?php $url = $this->url()->fromRoute('route-name', $params, $options); ?> 

This jest odniesienie do instrukcji ZF2 dla tej wtyczki kontrolera.

Nadzieja to pomaga :)

Stoyan

+0

Dziękuję Stoyan za szybką odpowiedź, , ale ponieważ nie otrzymuję ciągów znaków, nie mogę tego powtórzyć: Złapalny błąd krytyczny: Obiekt klasy Zend \ Mvc \ Controller \ Plugin \ Url nie może być przekonwertowane na ciąg Może popełniłem błąd w odniesieniu do moich tras, będę edytować mój post, aby dodać mój kod –

+0

@ Reign.85 Edytowałem swoją odpowiedź na podstawie Twojej edycji. Mam nadzieję, że to da ci pomysł, jak stworzyć adres URL :) –

+0

Tank tak bardzo, ta praca dla mnie, po prostu muszę dodać adres URL serwera do ścieżki –

1

Można to wykorzystać w pliku .phtml

echo $this->url('HelloWorld/default', array('controller'=>'Index', 'action'=>'registration')); 

Gdzie HelloWorld/default jest routing a pozostała jest kontrolerem i jego działanie a także możesz wysłać parametr else dodając tylko w tablicy jako parę klucz i wartość.