Symfony 如何检查表单字段在呈现控制器的细枝模板中是否有数据
这是我们的后续问题。我想知道的是如何检查实体变量是否存在/是否定义/是否为null。我想我可以做到这一点:Symfony 如何检查表单字段在呈现控制器的细枝模板中是否有数据,symfony,twig,Symfony,Twig,这是我们的后续问题。我想知道的是如何检查实体变量是否存在/是否定义/是否为null。我想我可以做到这一点: {% if entity.orgId is defined %} {{ render(controller( 'CompanyNameofBundle:OrgMember:test', {'orgid':entity.orgId})) }} {% endif %} 但如果entity.orgId为null,则在呈现模板时会引发异常(“产品不存在”)。您有两个选项: 不要使用复选框
{% if entity.orgId is defined %}
{{ render(controller(
'CompanyNameofBundle:OrgMember:test', {'orgid':entity.orgId})) }}
{% endif %}
但如果entity.orgId为null,则在呈现模板时会引发异常(“产品不存在”)。您有两个选项:
{% if entity.orgId is defined and entity.orgId is not null %}
{% if entity.orgId is defined %}
{% if entity.orgId is null %}
{# do something #}
{% else %}
{# do anythingelse #}
{% endif %}
{% endif %}
将控制器更改为返回null而不是异常:
public function testAction($orgid = null) {
if (!$orgid) { return null; }
// Rest of code.
}
谁抛出异常的可能重复项?1)不起作用仍然得到相同的结果在模板呈现期间抛出异常(“产品不存在”)。2) 我不能那样做,因为我还需要那个东西。渲染控制器需要该参数才能工作。这与上面的答案相同,只是您将其分为两个for循环。有一点不同,我使用了
is null
而不是is not null
,这在任何情况下都是非常重要的,is问题必须在控制器中进行检查,因为它从未设置为null,因此除了错误之外不会返回任何东西。这是我一直在寻找的极好方法@马尔科姆