2015-08-28 87 views
0

這是針對this one的後續問題。我想知道的是如何檢查實體變量是否存在/被定義/非空。我想我能做到這一點:如何檢查表單字段是否具有呈現控制器的樹枝模板中的數據

{% if entity.orgId is defined %} 
{{ render(controller(
    'CompanyNameofBundle:OrgMember:test', {'orgid':entity.orgId})) }} 
{% endif %} 

但如果entity.orgId爲null,我得到一個模板(「該產品不存在」)的渲染過程中的異常被拋出。

+0

可能重複[?如何檢查在枝杈空(http://stackoverflow.com/questions/3264889/how-檢查爲空的小枝) – Oldskool

+0

誰拋出異常? – user2268997

回答

1

改變你的控制器返回空值,而不是例外:

public function testAction($orgid = null) { 
    if (!$orgid) { return null; } 
// Rest of code. 
} 
+0

這是我尋找的優雅方法! @malcolm – shayster01

0

你有兩個選擇:

  1. 別叫使用支票

    {% if entity.orgId is defined and entity.orgId is not null %} 
    
  2. 渲染控制器使在OrgMemberController空安全的testAction(檢查參數ORGID是null)

+0

1)無法正常工作渲染模板期間拋出異常(「產品不存在」)。 2)我不能那樣做,因爲我仍然需要這個對象。渲染控制器需要該參數才能起作用。 – shayster01

0

試試這個:

{% if entity.orgId is defined %} 
    {% if entity.orgId is null %} 
     {# do something #} 
    {% else %} 
     {# do anythingelse #} 
    {% endif %} 
{% endif %} 
+0

這與上面的答案相同,只是您已將其分爲兩個for循環。 – shayster01

+0

有一個小問題的區別,我用'是空'而不是'不是空' –

+0

這是在材料上的任何情況下,必須在控制器中檢查問題,因爲它從來沒有設置爲null它不是返回錯誤以外的任何內容。 – shayster01

相關問題