Latte Funktionen

Zusätzlich zu den üblichen PHP-Funktionen können Sie diese auch in Vorlagen verwenden.

clamp klemmt den Wert auf den Bereich
divisibleBy prüft ob eine Variable durch eine Zahl teilbar ist
even prüft ob die angegebene Zahl gerade ist
first gibt das erste Element eines Arrays oder ein Zeichen einer Zeichenkette zurück
group gruppiert Daten nach verschiedenen Kriterien
hasBlock erkennt das Vorhandensein eines Blocks
last gibt das letzte Element eines Arrays oder ein Zeichen einer Zeichenkette zurück
odd prüft ob die angegebene Zahl ungerade ist
slice extrahiert einen Ausschnitt aus einem Array oder einer Zeichenkette

Verwendung

Funktionen werden auf die gleiche Weise verwendet wie die üblichen PHP-Funktionen und können in allen Ausdrücken verwendet werden:

<p>{clamp($num, 1, 100)}</p>

{if odd($num)} ... {/if}

Benutzerdefinierte Funktionen können auf diese Weise registriert werden:

$latte = new Latte\Engine;
$latte->addFunction('shortify', fn(string $s, int $len = 10) => mb_substr($s, 0, $len));

Wir verwenden sie in einer Vorlage wie dieser:

<p>{shortify($text)}</p>
<p>{shortify($text, 100)}</p>

Funktionen

clamp (int|float $value, int|float $min, int|float $max): int|float

Gibt einen Wert zurück, der auf den gesamten Bereich von min und max begrenzt ist.

{=clamp($level, 0, 255)}

Siehe auch Filter Klammer:

divisibleBy (int $value, int $by)bool

Prüft, ob eine Variable durch eine Zahl teilbar ist.

{if divisibleBy($num, 5)} ... {/if}

even (int $value): bool

Prüft, ob die angegebene Zahl gerade ist.

{if even($num)} ... {/if}

first (string|iterable $value)mixed

Gibt das erste Element eines Arrays oder ein Zeichen einer Zeichenkette zurück:

{=first([1, 2, 3, 4])}    {* gibt 1 *}
{=first('abcd')}          {* gibt 'a' *}

Siehe auch last, filter first.

group (iterable $data, string|int|\Closure $by)array

Diese Funktion gruppiert Daten nach verschiedenen Kriterien.

In diesem Beispiel werden die Zeilen in der Tabelle nach der Spalte categoryId gruppiert. Die Ausgabe ist ein Array von Feldern, wobei der Schlüssel der Wert in der Spalte categoryId ist. Lesen Sie die ausführliche Anleitung.

{foreach group($items, categoryId) as $categoryId => $categoryItems}
    <ul>
        {foreach $categoryItems as $item}
            <li>{$item->name}</li>
        {/foreach}
    </ul>
{/foreach}

Siehe auch Filtergruppe.

hasBlock (string $name): bool

Prüft, ob der Block mit dem angegebenen Namen existiert:

{if hasBlock(header)} ... {/if}

Siehe auch Blockexistenzprüfung.

last (string|array $value)mixed

Gibt das letzte Element eines Arrays oder ein Zeichen einer Zeichenkette zurück:

{=last([1, 2, 3, 4])}    {* gibt 4 *}
{=last('abcd')}          {* gibt 'd' *}

Siehe auch first, filter last.

odd (int $value): bool

Prüft, ob die angegebene Zahl ungerade ist.

{if odd($num)} ... {/if}

slice (string|array $value, int $start, ?int $length=null, bool $preserveKeys=false): string|array

Extrahiert einen Ausschnitt aus einem Array oder einer Zeichenkette.

{=slice('hello', 1, 2)}           {* gibt 'el' *}
{=slice(['a', 'b', 'c'], 1, 2)}   {* gibt ['b', 'c'] *}

Der Slice-Filter funktioniert wie die PHP-Funktion array_slice für Arrays und mb_substr für Strings mit einem Fallback auf iconv_substr im UTF-8-Modus.

Wenn start nicht negativ ist, beginnt die Sequenz an diesem Anfang in der Variablen. Wenn start negativ ist, beginnt die Sequenz so weit vom Ende der Variablen entfernt.

Wenn length angegeben wird und positiv ist, wird die Sequenz bis zu dieser Anzahl von Elementen enthalten. Wenn die Variable kürzer als die Länge ist, werden nur die verfügbaren Elemente der Variablen angezeigt. Wenn length angegeben wird und negativ ist, endet die Sequenz so viele Elemente vor dem Ende der Variablen. Wird sie weggelassen, enthält die Sequenz alle Elemente vom Offset bis zum Ende der Variablen.

Filter ordnet die Schlüssel des Integer-Arrays standardmäßig neu an und setzt sie zurück. Dieses Verhalten kann geändert werden, indem preserveKeys auf true gesetzt wird. String-Schlüssel werden immer beibehalten, unabhängig von diesem Parameter.

Version: 3.0