Php 如何在Symfony 3中自动检查变量是否为空?

Php 如何在Symfony 3中自动检查变量是否为空?,php,mysql,symfony,Php,Mysql,Symfony,(很抱歉英语这么差) 我想知道是否有可能自动检查MySQL请求中的变量在Symfony 3中是否为空。我知道我可以把{%if-foo被定义为%}放在Twig或者类似的东西中,但是我没有发现是否有一种方法可以自动完成。我也可以在控制器中测试请求。但有了这些解决方案,我就必须满足每一个请求 我所有的网站都使用“如果不是空的,那么就显示出来”,这就是为什么我试图找到它 编辑:我知道如何在Twig或php(Controller)中逐个检查每个请求的每个字段,但是有很多重复代码,这很“无聊”。这就是为什么

(很抱歉英语这么差)

我想知道是否有可能自动检查MySQL请求中的变量在Symfony 3中是否为空。我知道我可以把
{%if-foo被定义为%}
放在Twig或者类似的东西中,但是我没有发现是否有一种方法可以自动完成。我也可以在控制器中测试请求。但有了这些解决方案,我就必须满足每一个请求

我所有的网站都使用“如果不是空的,那么就显示出来”,这就是为什么我试图找到它

编辑:我知道如何在Twig或php(Controller)中逐个检查每个请求的每个字段,但是有很多重复代码,这很“无聊”。这就是为什么我问你是否存在自动检查我数据的方法。(Symfony中的参数,…)


谢谢如果我理解,您的问题:

您希望对实体中的每个属性进行迭代。但您不能,那么您正在寻找一种解决方案,以避免写入:

{% if entity.property1 %}
    {{ entity.property1 }}
{% endif %}
{% if entity.property2 %}
    {{ entity.property2 }}
{% endif %}
{% if entity.property3 %}
    {{ entity.property3 }}
{% endif %}
有两种解决方案可以使属性可遍历:

  • 使用
    ->getArrayResult()
    而不是
    ->getResult()

  • 使用
    ReflectionClass
    以数组形式获取属性:

因此,您可以迭代每个属性,并执行类似操作:

{# Where you get your entity as an array #}
{% for property in entity %}
   {% if not property  is null %}
        {{ property }}
   {% endif %}
{% endfor %}

{# where fields comes from the ReflectionClass #}
{% for field in fields %}
   {% if not attribute(entity,field) is null %}
        {{ attribute(entity,field)}}
   {% endif %}
{% endfor %}
使用细枝并将其设置为
false
(应为默认值):

严格布尔变量

如果设置为false,Twig将自动忽略无效变量 (不存在的变量和/或属性/方法)并替换 它们的值为空。设置为true时,Twig抛出异常 而是(默认为false)


您好,请展示php代码。展示您尝试过的内容。您阅读了问题吗?我知道如何在Twig或php(Controller)中逐个检查每个请求的每个字段,但是有很多重复代码,这很“无聊”。这就是为什么我问你是否存在自动检查我数据的方法。(Symfony中的参数,…)这是不清楚的-我们很难在看不到任何代码的情况下理解您试图实现的目标。正如所写的那样,您似乎想检查变量是否为空,而不告诉PHP/Symfony您想检查它。PHP无法读懂您的心思,您必须告诉它在某个地方进行检查-这通常是通过
empty()
完成的,或者
是在Twig中定义的
。您是否可以至少显示一些代码行,其中可能出现问题,您可能需要显示一些文件(Twig和controller等),然后我们“可以”帮助您解决问题。你知道我们愿意免费帮助你吗?就是这样!非常感谢。