Volt模板检查对象的类型

时间:2015-07-17 09:20:03

标签: phalcon volt

VOLT模板提供了检查对象类型的可能性:

{% set external = false %}
{% if external is type('boolean') %}
    {{ "external is false or true" }}
{% endif %}

是否有可能检查对象是否是这样的模型的类型:

{% if user is type('user') %}
    {{ "user is type of user" }}
{% endif %}

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

您必须在services.php here

中创建一个功能

答案 1 :(得分:0)

截至今天(2021 年),Phalcon 似乎仍然没有解决方案。为了解决这个问题,我添加了一个自定义的 Volt 函数:

$compiler = $this->volt->getCompiler();
$compiler->addFunction('instanceof', function ($resolvedArgs, $exprArgs) {
    $object = $instance = 'null';
    if (isset($exprArgs[0])) {
        $object = $exprArgs[0]['expr']['value'] ?? 'null';
    }
    if (isset($exprArgs[1])) {
        $instance = $exprArgs[1]['expr']['value'] ?? 'null';
    }
    return '$' . $object . ' instanceof ' . $instance;
});

在 Volt 中,我现在可以使用以下命令检查对象的实例:

{% if instanceof(myobject, \DateTime) %}
{% endif %}