2016-04-01 18 views
2

Ich habe diesen Code in .volt (Phalcon):Wie konvertiert man eine Variable in Phalcon's .volt?

{% set foo = myFunction(data, 'data_source', 0) %} 

Es gibt nicht-negative Zahlen, das Problem ist, wenn es leer ist Ich erhalte "" statt "0". Wie kann ich Volt zwingen, immer int als foo zurückgeben, so wird alles wie erwartet funktionieren, aber es wird nicht empty variable Fehler werfen?

Ich würde lieber vermeiden mit <?php ... ?>.

Ich habe durch http://voltframework.com/docs ohne Glück gesucht.

Vielen Dank.

Antwort

2

Es gibt zwei Optionen, die Sie wählen können:

1) Erstellen von eigenen Volt Funktion:

$compiler->addFilter(
    'int', 
    function ($resolvedArgs, $exprArgs) { 
     return 'intval(' . $resolvedArgs . ')'; 
    } 
); 

Mehr Infos hier: https://docs.phalconphp.com/en/latest/reference/volt.html#id2

2) unter Verwendung der in Filter von Volt gebaut. In Ihrem Fall können Sie DEFAULT Fitler verwenden, um den Standardwert auf 0 zu setzen, wenn kein Wert zurückgegeben wird. Die vollständige Liste der hier in Funktionen eingebaut: https://docs.phalconphp.com/en/latest/reference/volt.html#filters

Und natürlich andere Optionen wären Ihre Funktion zu ändern, um immer einen Wert zurückgeben oder die PHP-Syntax innerhalb Volt verwenden, das ist ein bisschen hässlich :)