我正在使用 Symfony 2 表单创建一个扩展的选择列表,使用单选按钮选择是否以匿名用户身份发布博客(显示用户名)。
BlogType.php 文件中的表单字段类型定义如下所示(我从控制器传递选项及其值,但它应该与我的问题无关):
$builder->add('is_anonymous', 'choice', array(
'choices' => $options['is_anonymous'],
'required' => true,
'multiple' => false,
'expanded' => true,
));
我尝试通过在模板树枝文件中执行以下操作来应用 Symfony2 Cookbook 中的“如何自定义单个字段”部分:
<div class="post_as">
{{ form_label(form.is_anonymous, 'Post as:') }}
{{ form_errors(form.is_anonymous) }}
{% form_theme form _self %}
{% block _factor_is_anonymous_0_label %}
<img src="/images/anonymous-32.png"/>
{{ block ('form_label') }}
{% endblock %}
{% block _factor_is_anonymous_1_label %}
<img src="/images/user-32.png"/>
{{ block ('form_label') }}
{% endblock %}
{{ form_widget(form.is_anonymous) }}
</div>
但是,上述结果导致两个图像都显示在选择列表之前,并且每个图像都显示在其相应的单选按钮旁边,如生成的 html 所示:
<div class="post_as">
<label class="required">Post as:</label>
<img src="/images/anonymous-32.png"/>
<img src="/images/user-32.png"/>
<div id="factor_is_anonymous">
<input type="radio" id="factor_is_anonymous_0" name="factor[is_anonymous]" required="required" value="true" />
<img src="/images/anonymous-32.png"/>
<label for="factor_is_anonymous_0" class="required">Anonymous Collaborator</label>
<input type="radio" id="factor_is_anonymous_1" name="factor[is_anonymous]" required="required" value="false" />
<img src="/images/user-32.png"/>
<label for="factor_is_anonymous_1" class="required">User Name</label>
</div>
</div>
如何摆脱显示两次的图像?我认为这与整体选择“行”的渲染以及两个选择中的每一个的渲染中显示的图像有关。我尝试了各种组合来显示整体标签而不是,但我无法解决问题......有人可以帮忙吗?谢谢...