2013-04-02 6 views
8

Ich kann nicht URL zu generieren, herauszufinden von überall i zu wollen, in zend 2ZF2 - Generierung von URL von der Route

ich Aktion und Controller, so dass ich versuchen Sie dies:

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

Aber diese Rückgabe eines Objekts, ich möchte nur die vollständige URL-Zeichenfolge dieser Route

Jemand kann mir helfen, den richtigen Weg zu finden?

EDIT: nach Stoyan, vielleicht habe ich einen Fehler auf meiner Route gemacht. hier ist der Teil meines 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' 
            ) 
          ) 
        ), 

Und mein Aufruf:

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

der Fehler: Abfangbare fatal error: Object der Klasse Zend \ Mvc \ Controllers \ Plugin \ URL konnte nicht sein in Zeichenfolge konvertiert

Antwort

22

Verwenden Sie das Echo vor dem Aufruf (siehe unten) und dies wird die gesamte URL angezeigt.

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

Beachten Sie, dass der erste Paramter von url() der Name der Route ist wie in Ihrer [module]/config/module.config.php-Datei angegeben.

Weitere Informationen zum URL-View-Hilfsprogramm von ZF2 finden Sie unter this.

EDIT als Antwort auf die Frage zu bearbeiten:

Der obige Abschnitt ist mit der Helfer-URL Ansicht verwendet.

Wenn Sie eine URL im Controller benötigen, benötigen Sie das URL-Controller-Plugin.

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

This ist der Verweis auf das ZF2 Handbuch für diese Controller-Plugin.

this helps :)

Stoyan

+0

Danke Stoyan für diese schnelle Antwort, aber, wie ich, nicht eine Zeichenfolge bekomme ich es nicht echo kann: Abfangbare fatal error: Object der Klasse Zend \ Mvc \ Controllers \ Plugin \ URL nicht sein könnte konvertiert in string Vielleicht habe ich einen Fehler in Bezug auf meine Routen gemacht, ich werde meinen Beitrag bearbeiten, um meinen Code –

+0

@ Reign.85 hinzuzufügen Ich habe meine Antwort basierend auf Ihrer Bearbeitung bearbeitet. Hoffe, das wird dir eine Idee geben, wie man die URL erstellt :) –

+0

Tank dich so sehr, diese Arbeit für mich, ich muss nur die Server-URL zum Pfad hinzufügen –

1

können Sie dies in der .phtml Datei verwenden

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

Wo Hello World/default ist das Routing und die verbleibende ist die Steuerung und ihre Wirkung und Sie können auch den anderen Parameter senden, der nur im Array als Schlüssel-Wert-Paar hinzugefügt wird.