Check if variable is string or array in Twig

后端 未结 4 553
暗喜
暗喜 2020-12-24 10:29

Is it possible to check if given variable is string in Twig ?

Expected solution:

messages.en.yml:

hello:
  stranger         


        
4条回答
  •  一生所求
    2020-12-24 11:25

    There is no way to check it correctly using code from the box. It's better to create custom TwigExtension and add custom check (or use code from OptionResolver).

    So, as the result, for Twig 3, it will be smth like this

    class CoreExtension extends AbstractExtension
    {
        public function getTests(): array
        {
            return [
                new TwigTest('instanceof', [$this, 'instanceof']),
            ];
        }
    
        public function instanceof($value, string $type): bool
        {
            return ('null' === $type && null === $value)
                   || (\function_exists($func = 'is_'.$type) && $func($value))
                   || $value instanceof $type;
        }
    }
    

提交回复
热议问题