Twig - 如何检查变量是不是为数字/整数
Posted
技术标签:
【中文标题】Twig - 如何检查变量是不是为数字/整数【英文标题】:Twig - How to check if variable is a number / integerTwig - 如何检查变量是否为数字/整数 【发布时间】:2016-08-22 01:31:39 【问题描述】:如何检查变量是数字、整数还是浮点数?我找不到任何关于此的信息。在 Symfony 3 中制作项目。
【问题讨论】:
如果它需要是一个 int,你为什么不在把它交给视图之前验证呢? 关键是它并不总是一个 int。这就是为什么我必须这样做。 这更有意义:) 添加一个新的test不是更好吗?它使您的模板保持可读性和可重用性。 @Yoshi 可能是。我现在只是 Twig 的初学者:/. 【参考方案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 %
【讨论】:
谢谢,简单又好用的解决方案 如果您需要纯 Twig 解决方案,这个答案是可以的,但是在 Twig 和 Symfony 的文档中创建扩展是推荐的方法。 ***.com/a/52946699/1440932【参考方案2】:您可以创建一个树枝扩展来添加测试“数字”
有了它,你就可以写了:
% 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
【讨论】:
以上是关于Twig - 如何检查变量是不是为数字/整数的主要内容,如果未能解决你的问题,请参考以下文章