1

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 %}

谢谢你的帮助

4

2 回答 2

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 %}
于 2021-05-23T13:08:31.667 回答
-1

您必须在services.php 中创建一个函数

于 2015-07-17T12:34:56.010 回答