如何确定键是否是对象(树枝)?

时间:2018-12-07 18:46:34

标签: symfony object twig

我想确定我的钥匙是否是一个物体:

  {% for key in columns %}
      {% if key is object %}
        This is an object
      {% else %}
       This in not an object
      {% endif %}
  {% endfor %}

但是我收到错误消息:

  

未知的“对象”测试。

2 个答案:

答案 0 :(得分:2)

您可以创建自己的 Twig扩展名。我看到您已经用Symfony标记了您的问题,因此假设您在Symfony中使用Twig,则可以按照以下教程进行操作:

https://symfony.com/doc/3.4/templating/twig_extension.html

您需要根据此示例添加新的TwigTest

https://twig.symfony.com/doc/2.x/advanced.html#tests

您应该以如下形式结束:

// src/AppBundle/Twig/AppExtension.php
namespace AppBundle\Twig;

use Twig\Extension\AbstractExtension;
use Twig\TwigTest;

class AppExtension extends AbstractExtension
{
    public function getTests()
    {
        return array(
            new TwigTest('object', array($this, 'isObject')),
        );
    }

    public function isObject($object)
    {
        return is_object($object);
    }
}

上面的代码未经测试,但可以正常工作。

答案 1 :(得分:1)

检查变量是对象还是字符串的简单方法:

{% if var.id|default('') is not same as ('') %}