Ich benutze Slim3 zusammen mit Twig. Wenn ich jetzt versuche, einen Link mit dem path_for
Helfer in einer Zweigvorlage zu erstellen, bekomme ich nicht die vollständige URL wie https://domain.tld/path/to/something
, sondern nur /path/to/something
. Was vermisse ich?Slim3 + Twig> Vollständige URL für href-Links anstelle von relativen.
Antwort
ich etwas habe gehackt die slim/twig-view Erweiterung es zum Laufen zu bringen. So in der TwigExtension.php habe ich
geändertpublic function pathFor($name, $data = [], $queryParams = [], $appName = 'default')
{
return $this->router->pathFor($name, $data, $queryParams);
}
zu
public function pathFor($name, $data = [], $queryParams = [], $appName = 'default')
{
if (getenv('APP_HOST') != '') {
return getenv('APP_HOST') . $this->router->pathFor($name, $data, $queryParams);
}
return $this->router->pathFor($name, $data, $queryParams);
}
I Wette, dass es eine elegantere Möglichkeit, dies behoben. Aber derzeit behebt das mein Problem.
Dies erfordert natürlich die Verwendung einer .env-Datei zusammen mit einer Bibliothek, die die Variablen über getenv()
zugänglich macht. Dafür benutze ich PHPDotenv. Du könntest das aus allen möglichen Blickwinkeln angehen, schätze ich.
Ich weiß immer noch nicht, warum @ Scriptoamy's Lösung nicht funktioniert. Es sollte wirklich. Aber in meinem Fall ist es einfach nicht ... Kommentare, wo ich vielleicht vermasselt habe, sind willkommen! :)
Wenn Sie die Zweig Helfer path_for wollen vielmehr die vollständige URL zurückzukehren, als nur eine absolute, müssen Sie die basePath Eigenschaft auf dem Router setzen.
Zupacken der Behälter:
$container = $app->getContainer();
Besorgen Sie sich die Router:
$router= $container->get('router');
Stellen Sie den basePath:
$router->setBasePath('https://domain.tld');
'$ container = $ app-> getContainer(); $ router = $ container-> get ('router'); $ router-> setBasePath (getenv ('APP_HOST')); ' Das hat aus irgendeinem Grund nichts getan. Links sind immer noch relativ in der Quelle der Seite. Changed '$ container-> get ('settings')' zu '$ container-> get ('router')'. Da 'Einstellungen' nicht die setBasePath-Methode enthält. Jetzt bekomme ich keine Fehler, aber auch nichts geändert. : P –
zw. _vital_ data mit einer '.env' Datei verwalten, also getenv (was funktioniert, überprüft mit var_dump). –
Router ist es nicht Einstellungen, es war ein Fehler. – Scriptonomy
- 1. Get TinyMCE, um Vollbild-URL anstelle von relativen
- 2. Scrap die absolute URL anstelle eines relativen Pfad in Python
- 3. TWIG-Bedingung für vollständige URL
- 4. PHP für vollständige URL yoast
- 5. relativen Pfad für Netzanruf Fetch „unerkannt url“
- 6. Vollständige WKWebView-URL
- 7. 301 Redirect Vollständige URL
- 8. Google Analytics - Vollständige URL für Seiten
- 9. web.config Rewrite vollständige URL
- 10. Wie vollständige URL PHP
- 11. Wie vollständige URL-Adresse
- 12. Suchen/Ersetzen-Namen von einer relativen URL
- 13. Mocking-Umgebung mit Slim3 für CLI
- 14. Vollständige HTTP-URL für das IIS-URL-Rewrite-Modul
- 15. Absoluter Dateipfad zur relativen URL
- 16. eine absolute URL von einer relativen URL in Java Gebäuden
- 17. Abrufen einer absoluten URL von einer relativen URL. (IE6 Ausgabe)
- 18. Wie vollständige URL bekommen von django
- 19. Animations Ansichten IDs anstelle von relativen Positionen mit
- 20. Get Soundcloud vollständige URL via API url
- 21. QSqlQuery vollständige Struktur anstelle einzelner Felder einfügen?
- 22. Slim3 Route von CSRF Middleware ausschließen
- 23. Relay Mutation mit relativen Pfad anstelle von API-Server
- 24. Vollständige URL Problem in Tomcat
- 25. nginx.conf redirecta eine vollständige URL
- 26. Vollständige Django-URL-Konfiguration ermitteln
- 27. Controller Einheit Test in slim3
- 28. SLIM3 verteilte Transaktion auf appengine
- 29. NSURL URLWithString zu einer relativen URL
- 30. So konfigurieren Sie die vollständige Synchronisation anstelle von inkrementellen?
möglich duplicate von https://stackoverflow.com/questions/17049712/how-to-use-absolute-path-in-twig-functions –
glaube nicht, da dies kein Zweig Problem ist Ja wirklich. Ich denke, es ist eher ein Slim-Router-Problem. Könnte falsch sein, also ... –