2

我在.volt(Phalcon)中有这个代码:

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

它返回非负数,问题是当它为空时,我得到""的是"0". 我怎样才能强制 volt 总是返回intas foo,所以一切都会按预期工作,但不会抛出empty variable错误?

我宁愿避免使用<?php ... ?>.

我一直在浏览http://voltframework.com/docs,但没有运气。

谢谢你。

4

2 回答 2

2

...还有另一种方法 :) Volt 已经实现了带有 name 的 php sprintf函数format。因此,您可以执行以下操作:

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

The int of "foo" is: {{ "%d"|format(foo) }}

祝你好运!

于 2018-05-11T13:32:27.220 回答
2

有两个选项可供您选择:

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 语法,这有点难看:)

于 2016-04-01T10:20:42.300 回答