2015-10-27 84 views
1

我试图根据我是编辑用户还是创建密码字段来控制密码字段的呈现。防止表单域呈现

{{ form_start(userForm) }} 
    {{ form_errors(userForm) }} 

    <div id="user-fg-email" class="form-group"> 
     {{ form_label(userForm.email) }} 
     {{ form_errors(userForm.email) }} 
     {{ form_widget(userForm.email) }} 
    </div> 

    {% if app.session.get('editingUser') == false %} 
     <div id="user-fg-pp1" class="form-group"> 
      {{ form_label(userForm.plainPassword.first) }} 
      {{ form_widget(userForm.plainPassword.first) }} 
     </div> 

     <div id="user-fg-pp2" class="form-group"> 
      {{ form_label(userForm.plainPassword.second) }} 
      {{ form_errors(userForm.plainPassword.first) }} 
      {{ form_widget(userForm.plainPassword.second) }} 
     </div> 
    {% endif %} 

    <div id="user-fg-role" class="form-group"> 
     {{ form_label(userForm.role) }} 
     {{ form_errors(userForm.role) }} 
     {{ form_widget(userForm.role) }} 
    </div> 

    <button type="submit" class="btn btn-primary pull-right">Submit</button> 

{{ form_end(userForm) }} 

然而,当这个布尔为真,这是应该避免这些领域的渲染评估,他们仍然被assumingly由后来以下渲染:我有一个简单的会话布尔变量如下这样form_end标签。

有没有办法来防止这种情况发生?

编辑:

如果editingUser ==真密码字段按钮后实际呈现的,因此我假设它是由form_end标签这样做。

+0

你使用'{其他}'或'{ELSEIF}'在{endif}之前?像这里解释:http://twig.sensiolabs.org/doc/tags/if.html – caramba

+0

不,只有你看到那里。我将用包含整个表单的更多代码块更新我的问题。 – Taerus

+2

看到http://stackoverflow.com/questions/10570002/how-to-make-form-rest-not-display-a-field-with-symfony2 – Richard

回答