2016-11-01 3 views
0

I definiert meine Strecke so:Wie bekomme ich eine Route Link in Slim3 Zweig?

$app->get('/about', function ($request, $response, $args) { 
    return $this->view->render($response, 'about.twig'); 
})->setName('about.page'); 

Ich bin interessiert wie Routenverbindung nach Namen zu bekommen: {% get_route('about.page') %}

Wie kann ich das erreichen?

Antwort

2

In Slim3 gibt es die path_for(name) Funktion. F.ex:

{{ path_for('about.page') }} 

Referenz: http://www.slimframework.com/docs/features/templates.html

Die slim/twig-view Komponente eine individuelle Vorlagen path_for() Funktion zu Ihrem Zweig aussetzt. Sie können diese Funktion verwenden, um vollständige URLs zu einer beliebigen benannten Route in Ihrer Slim-Anwendung zu generieren. Die path_for() Funktion akzeptiert zwei Argumente:

  • 1 Ein Routennamen
  • 2 Ein Hash von Routen Platzhalter Namen und Ersatzwerte

Anmerkung: Die path_for die Funktion des Routers verwendet, das ist $router->pathFor(..)

Warum nicht verwenden {%

{% ist eine Kontrollstruktur in Zweig, Message: Unknown "path_for" tag in "base.twig" at line XX. wird angezeigt, weil es kein solches Tag als Kontrollstruktur definiert, so dass Zweig nicht weiß, dass dies tatsächlich eine Funktion ist. Verwenden Sie die Ausgabestruktur in Zweig {{.

1

Ist das möglich?

Ja.

IIRC

{{ path_for('about.page') }} 

Referenz:

https://github.com/slimphp/Twig-View/blob/master/src/TwigExtension.php#L37

+0

Ich bekomme dort nur 'Nachricht: Unbekanntes" path_for "-Tag in" base.twig "in Zeile 39. Was muss ich als Funktion schreiben? – Michelle

+0

Nein, die Funktion ist bereits eingebaut. Überprüfen Sie die Schreibweise des Pfadnamens. –

+0

@Michelle Die Funktion wird in das Twig-View Slim-Paket eingebrannt. https://github.com/slimphp/Twig-View/blob/master/src/TwigExtension.php#L37 – geggleto

Verwandte Themen