web-dev-qa-db-ja.com

Twig-変数が数値/整数かどうかを確認する方法

変数が数値、整数、または浮動小数点数であるかどうかを確認するにはどうすればよいですか?これについては何も見つかりません。 Symfony 3でプロジェクトを作成します。

22
Krzysztof Trzos

やっと何かを見つけました。回答の1つ: 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

テスト「数値」を追加するtwig拡張機能を作成できます

拡張クラスを作成します。

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