我有一个这样的混合数组(手机号码和实体):

$targets = array();

$targets[] = '+32647651212';
$targets[] = new Customer();


在我的Twig模板中,如果getMobile()target,我必须调用Customer;如果实际上是数字(string),则只打印数字。

Twig中是否有类似instanceof运算符的内容?

<ul>
{% for target in targets %}
   <li>{{ target instance of MyEntity ? target.getMobile : target }}</li>
   {% else %}
       <li>Nothing found.</li>
</ul>

最佳答案

在\ Twig_Extension中,您可以添加测试

public function getTests()
{
    return [
        'instanceof' =>  new \Twig_Function_Method($this, 'isInstanceof')
    ];
}

/**
 * @param $var
 * @param $instance
 * @return bool
 */
public function isInstanceof($var, $instance) {
    return  $var instanceof $instance;
}


然后用像

{% if value is instanceof('DateTime') %}

关于symfony - Twig/Symfony 2中的Instanceof运算符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10788138/

10-13 04:42