web-dev-qa-db-fra.com

Twig - Comment vérifier si la variable est un nombre / entier

Comment vérifier si la variable est un nombre, un entier ou un flottant? Je ne trouve rien à ce sujet. Faire un projet dans Symfony 3.

22
Krzysztof Trzos

Enfin trouvé quelque chose. Une des réponses de: https://craftcms.stackexchange.com/questions/932/how-to-check-variable-type

{# Match integer #}
{% if var matches '/^\\d+$/' %}
{% endif %}

{# Match floating point number #}
{% if var matches '/^[-+]?[0-9]*\\.?[0-9]+$/' %}
{% endif %}
37
Krzysztof Trzos

Vous pouvez créer une extension twig pour ajouter un test "numérique"

Créez votre classe d'extension:

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); }),
        ];
    }
}

Et dans votre configuration:

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

Voir documentation:

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

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

4