我在.volt(Phalcon)中有这个代码:
{% set foo = myFunction(data, 'data_source', 0) %}
它返回非负数,问题是当它为空时,我得到""的是"0". 我怎样才能强制 volt 总是返回intas foo,所以一切都会按预期工作,但不会抛出empty variable错误?
我宁愿避免使用<?php ... ?>.
我一直在浏览http://voltframework.com/docs,但没有运气。
谢谢你。
...还有另一种方法 :) Volt 已经实现了带有 name 的 php sprintf函数format。因此,您可以执行以下操作:
{% set foo = myFunction(data, 'data_source', 0) %}
The int of "foo" is: {{ "%d"|format(foo) }}
祝你好运!
有两个选项可供您选择:
1)创建自己的伏特功能:
$compiler->addFilter(
'int',
function ($resolvedArgs, $exprArgs) {
return 'intval(' . $resolvedArgs . ')';
}
);
更多信息在这里:https ://docs.phalconphp.com/en/latest/reference/volt.html#id2
2) 使用内置的伏特滤波器。在您的情况下,如果没有返回值,您可以使用 DEFAULT fitler 将默认值设置为 0。此处内置函数的完整列表:https ://docs.phalconphp.com/en/latest/reference/volt.html#filters
当然,其他选项是修改您的函数以始终返回一个值或在 volt 中使用 PHP 语法,这有点难看:)