Laravel: Standard Auth URL und Form Helper

Seit dem kürzlichen Release von Laravel 5.0 konnte ich bereits einige Erfahrungen mit Projekten sammeln – sowohl neu angefangen als auch nun eine Migration eines 4.2 Projekts. Im Vergleich zur vorherigen Version bin ich dabei an mehreren Stellen auf kleinere Probleme gestoßen. Dieser Post dient als Info für euch und Gedankenstütze für mich wie man in Laravel 5 die Standard Auth URL ändert und die HTML und Form Helper wieder aktivieren kann.

Standard Auth URL

Bei einer frischen Installation von Laravel 5 wird bei Zugriff auf einen geschützten Bereich automatisch auf die URL /auth/login weitergeleitet. Oft passt das jedoch vielleicht nicht in die eigene Planung für die Routen oder sieht einfach nicht schön aus. Diese Standard Auth URL können wir aber ganz simpel ändern. Dafür öffnen wir einfach die Datei app/Http/Middleware/Authenticate.php und sehen uns die Methode handle() an.

Hier ändern wir einfach in der markierten Zeile die URL, zu der umgeleitet wird (von auth/login zum Beispiel in users/login oder einfach nur /login) und schon werden unsere Besucher zum Einloggen direkt an eine URL geschickt, die wir selbst bestimmen.

 

 

HTML und Form Helper

Eine weitere Änderung, die vor allem bei einer Migration von älteren Versionen viel Arbeit bereiten kann, ist die Abschaffung der HTML und Form Helper. Diese haben über einen Funktionsaufruf in den Views zum Beispiel Links oder Formularelemente erzeugt. Da diese nun als veraltet gelten wurden sie in Version 5 von Laravel nicht mehr standardmäßig mit ausgeliefert. Glücklicherweise gibt es eine simple Methode, die Helperklassen wieder ins eigene Projekt zu integrieren: mit Composer.

Dafür fügen wir zuerst in unserer composer.json die dependancy „illuminate/html“: „5.*“ hinzu und führen danach in der Konsole den Befehl composer update aus. Dadurch lädt Composer automatisch die benötigten Klassen herunter und speichert diese im vendor Ordner.

Laravel weiß automatisch, dass es diese Klassen nun gibt. Allerdings sind sie bisher noch in einem Namespace versteckt, weshalb wir nun dem Framework noch eine Facade geben müssen (quasi ein Alias um schneller auf die Klassen zugreifen zu können). Die beiden Facades nennen wir Form und HTML und schon finden unsere Views wieder automatisch die passende Helferklasse. Dafür öffnen wir die Datei config/app.php und fügen im Array ‚aliases‘ folgende Zeilen hinzu:

 

 

Damit funktionieren die Helperklassen nun wieder. Ein weiteres Problem sind die Tagänderungen in Blade. Seit Laravel 5 werden automatisch alle Inhalte, die per {{ }} und {{{ }}} ausgegeben werden, escaped. Das bedeutet ganz einfach, dass vorhandene HTML Tags automatisch umgewandelt werden und als Text ausgegeben werden. Möchten wir dies verhindern müssen wir die neue Syntax {!! !!} verwenden. In meinen Projekten habe ich meine Tags einfach ersetzt, da es nicht allzuviele waren. Je nach Aufwand ist es allerdings auch möglich, die Syntax ein wenig anzupassen. Dafür gibt es auf der offiziellen Laravel Seite im Upgrade Guide Hilfestellung.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*