"Während" und "repeat" - Schleifen in Twig
Gibt es schöne Möglichkeiten zum verwenden von while-und repeat-Schleifen in Twig? Es ist eine so einfache Aufgabe, aber ohne Makros kann ich nicht finden, alles, was schön und einfach.
Zumindest einem unendlichen Kreislauf und dann brechen Sie in einen Zustand?
EDIT:
Ich meine so etwas wie
do {
//loop code
} while (condition)
oder
while (condition) {
//loop code
}
Edit 2:
Aussieht, ist es nicht nativ unterstützt, indem Sie einen Zweig aus demselben Grund wie Sie wird nicht unterstützt, weder continue;
oder break;
Aussagen.
https://github.com/twigphp/Twig/issues/654
- Es gibt eine
for
undforeach
- Anweisung im Zweig, auchif
Bedingungen, aber was ist deine Frage genau? - Hinzugefügt einige Beispiele dafür, was Suche ich genau.
- #Aistis ich vor dem gleichen Problem... würde while(Bedingung){ }... scheint aber, dass es nicht in TWIG. Aber Sie sagen, dass makro könnte einen Weg, es zu tun. konnte Sie dann erzählen, wie ich es noch nie benutzt makro mit symfony so weit.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In a nutshell: Nein. Diese Funktionalität bedeutet erweiterte Logik, die in Ihrer business-Logik, nicht in der template-layer. Es ist ein Paradebeispiel für die Trennung in MVC.
Zweig unterstützt
for
-Schleifen komplett, das sollte reichen wenn Sie den code korrekt - ist, dass Sie komplexe bedingte Entscheidungen darüber, welche Daten angezeigt werden, sind die business-Logik, wo Sie hingehören, die dann an eine resultierende array "ready to render", um die Vorlagen. Zweig unterstützt dann alle netten Funktionen, die nur benötigt für das rendering.do
nochwhile
zu verarbeiten, ein verschachteltes array in Twig. Was Sie suchen, zu tun, ist wohl leicht getan mit einem einfachen makro. Macht diese Frage einen eklatanten XY-problem wenn Sie Fragen über Ihre beabsichtigte Lösung, nicht das eigentliche problem, das Sie versuchen zu lösen. Jetzt verlassen Sie mich, und der rest von uns kann nur raten, was Sie wirklich erreichen wollen.do
undwhile
. Mit dem Kommentar oben, ich wollte nur darauf hinweisen, dass es gibt einige Fälle, in denen diese Arten von Zyklen könnte eine kluge Wahl. Ich bin nicht auf der Suche die Antwort für mein spezielles problem. Sorry, wenn wir uns missverstanden haben t einander.for
für looping - obwohl sehr mächtig, wenn kombiniert mit range-Konstrukten und dergleichen.War ich in der Lage, implementieren eine einfache for-Schleife in twig. So die folgende php-Anweisung:
wenn übersetzt Zweig:
Es ist nicht eine while-Schleife, sondern eine mögliche Problemumgehung. Der beste Vorschlag ist, lassen Sie die business-Logik wie diese aus dem template-layer.
Können Sie emulieren es mit
for ... in ... if
indem eine ausreichend hohe Schleife Grenze (10000?)während
PHP:
Zweig:
tun, während
PHP:
Zweig:
Ist dies möglich, aber ein wenig kompliziert.
Können Sie
{% include ... %}
zu verarbeiten verschachtelte arrays, die aus den Kommentaren ich Lesen, was Sie tun müssen.Betrachten Sie den folgenden code:
nested_array_display.html