我有一个这样的混合数组(手机号码和实体):
$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/