Gibt es in Laravel einen Modifikator zum Abschneiden der Blade-Vorlagen, ähnlich wie bei Smarty?
Ich weiß, ich könnte einfach das eigentliche PHP in die Vorlage schreiben, aber ich bin auf der Suche nach etwas Schönerem zum Schreiben (lassen Sie uns nicht auf das gesamte PHP eingehen, ist eine Template-Engine-Debatte).
So suche ich zum Beispiel nach etwas wie:
{{ $myVariable|truncate:"10":"..." }}
Ich weiß, dass ich über Composer so etwas wie Twig verwenden könnte, aber ich hoffe auf eine integrierte Funktionalität in Laravel.
Wenn nicht, können Sie Ihre eigenen wiederverwendbaren Modifikatoren erstellen, wie sie Smarty bereitstellt. Ich mag die Tatsache, dass Blade nicht mit der gesamten Syntax überfordert ist, aber ich denke, dass das Abschneiden eine sehr praktische Funktion ist.
Ich benutze Laravel 4.
Antworten:
In Laravel 4 & 5 (bis zu 5.7) können Sie verwenden
str_limit
, wodurch die Anzahl der Zeichen in einer Zeichenfolge begrenzt wird.In Laravel 5.8 können Sie den
Str::limit
Helfer verwenden.Weitere Laravel-Hilfsfunktionen finden Sie unter http://laravel.com/docs/helpers#strings
quelle
str
Helfer entfernt, die SieIlluminate\Support\Str::limit($string)
stattdessen verwenden müssenLaravel 4 hat
Str::limit
welche, die auf die genaue Anzahl von ZeichenStr::words
abgeschnitten werden , und welche auch an der Wortgrenze abgeschnitten werden.Auschecken:
quelle
Str::words
es in Larvel 5.2 ein Äquivalent von gibt?Bearbeiten: Diese Antwort wurde während der Beta von Laravel 4 veröffentlicht, als die Str-Klasse nicht existierte. In Laravel 4 gibt es jetzt einen besseren Weg - das ist Dustins Antwort unten. Ich kann diese Antwort aufgrund von SO-Regeln nicht löschen (das lässt mich nicht)
Blade selbst verfügt nicht über diese Funktionalität.
In Laravel 3 gab es die Str-Klasse - was Sie tun konnten:
Derzeit glaube ich nicht, dass sich die Str-Klasse in Laravel 4 befindet - aber hier ist eine Portierung davon, die Sie in den Komponisten aufnehmen können , um sie Ihrem eigenen Projekt hinzuzufügen
quelle
limit Beispiel:
Ausgabe
Wörter Beispiel:
Ausgabe
Vergessen Sie bei der Verwendung von Helper in Controller nicht, auch die Klasse einzuschließen / zu verwenden
Dies dient zum Behandeln von Zeichen aus der Zeichenfolge :
Ausgabe
Dies dient zum Behandeln von Wörtern aus der Zeichenfolge :
Ausgabe
Hier finden Sie die neueste Helferdokumentation für den Umgang mit String- Laravel-Helfern
quelle
Sie können den Namespace wie folgt festlegen:
quelle
Um Ihren Code trocken zu halten und wenn Ihr Inhalt von Ihrem Modell stammt, sollten Sie einen etwas anderen Ansatz wählen. Bearbeiten Sie Ihr Modell wie folgt (getestet in L5.8):
Dann aus Ihrer Sicht:
quelle
Sie können das String-Limit wie folgt festlegen:
Es werden nur die 20 Buchstaben einschließlich Leerzeichen angezeigt und endet mit ....
Beispielbild
quelle
Dies funktioniert auf Laravel 5:
quelle
Für einfache Dinge wie diese würde ich lieber einen Helfer machen - zum Beispiel:
Erstellen Sie eine
helpers.php
Datei in Ihrem/app/helpers.php
mit folgenden Inhalten:Registrieren Sie sich
helper.php
bei autoload in Ihremcomposer.json
Danach können Sie in Ihrer Blade-Datei beispielsweise Folgendes verwenden:
Sie können diese einfache Funktion dann global in Ihrer App verwenden.
quelle
Laravel 6 Update:
quelle
In Laravel 4 & 5 (bis zu 5.7) können Sie str_limit verwenden, wodurch die Anzahl der Zeichen in einer Zeichenfolge begrenzt wird.
In Laravel 7 können Sie den Str :: limit-Helfer verwenden.
quelle