Twig - 如何检查变量是否为数字/整数

28
如何检查变量是否为数字、整数或浮点数?我找不到相关信息。在Symfony 3中制作项目。

如果需要是整数,为什么在将其传递给视图之前不进行验证? - Jonnix
重点是它并不总是整数。这就是为什么我必须这样做的原因。 - Jazi
那样更有意义 :) - Jonnix
2
难道直接添加一个新的test不是更好吗?这样可以保持模板的可读性并且具有重用性。 - Yoshi
@Yoshi 可能吧。我现在只是Twig的初学者 :/。 - Jazi
2个回答

62

谢谢,好的简单易行的解决方案 <3 - Tomas Votruba
1
如果您需要一个纯的Twig解决方案,那么这个答案是可以的,但是在Twig和Symfony的文档中创建扩展是推荐的方法。https://dev59.com/7VoU5IYBdhLWcg3w9aWi#52946699 - colonelclick

10
你可以创建一个Twig扩展来添加一个测试 "numeric"。
有了这个,你就可以写出以下代码:
{% if foo is numeric %}...{% endif %}

创建您的扩展类:
namespace MyNamespace;
class MyTwigExtension extends \Twig_Extension
{

    public function getName()
    {
        return 'my_twig_extension';
    }

    public function getTests()
    {
        return [
            new \Twig_Test('numeric', function ($value) { return  is_numeric($value); }),
        ];
    }
}

而在你的配置中:

services:
    my_twig_extension:
        autowire: true
        class: AppBundle\MyNamespace\MyTwigExtension
        tags:
            - { name: twig.extension }

查看文档:

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接