【问题标题】:Displaying returned array as radio buttons将返回的数组显示为单选按钮
【发布时间】:2016-11-11 14:20:29
【问题描述】:

我试图在我的索引页面上显示一组单选按钮(男性或女性)。在我的表单中,我构建了这样的表单:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
    ->add('gender', ChoiceType::class, array(
        'choices'  => array(
            'Male' => 1,
            'Female' => 2,
        )));
}

然后在控制器内:

public function indexAction(Request $request)
{
    $participantEntry = new Participants();

    $form = $this->createForm(ParticipantsType::class, $participantEntry,[
        'action' => $request->getUri()
    ]);

    $form->handleRequest($request);

    return $this->render('SurveyBundle:Page:index.html.twig',
        ['form' => $form->createView()]);

}

但是,我不确定如何在我的 Twig 文件中实际显示为 RadioButtons,这是我尝试过的:

{% for g in form.gender %}
    {{ g.value }}
{%  endfor %}

顺便说一句:我的实体中的 $gender 是一个 int

哪个不起作用,有谁知道我做错了什么?

【问题讨论】:

    标签: symfony twig


    【解决方案1】:

    add改成builder如下

    ->add('gender', ChoiceType::class, array(
        'choices'  => array(
            'Male'   => 1,
            'Female' => 2,
        ),
        'expanded' => true,
        'multiple' => false 
    );
    

    'expanded' => true'multiple' => false 的组合会生成单选按钮,然后在twig中,只需使用

    form_widget(form.gender)
    

    【讨论】:

    • 完美!他们有什么方法可以真正自定义返回的单选按钮吗?
    • 对不起,让我说得更具体一些。有没有办法遍历数组中的每个性别?所以我可以在每个项目周围包裹一个 div?
    • @KTOV 是的,当然,您可以在完成后进行迭代并编写所有 HMTL 结构(不仅是外部 div,而且是所有结构)并使用收音机的值
    • 它不适用于我的做法。它指出值不能转换为字符串?
    • @KTOV 如果你想同时显示标签,你需要使用form_label as well
    猜你喜欢
    • 2018-07-14
    • 2020-06-01
    • 2013-07-05
    • 2015-01-24
    • 2013-02-25
    • 2016-11-24
    • 2013-04-26
    • 2012-04-03
    • 2013-06-23
    相关资源
    最近更新 更多