symfony - Symfony/twig 中的分组复选框

标签 symfony checkbox doctrine twig

我有 2 个实体:项目和类别。我在这两者之间有多对多关系。 类别与实体“行业”具有多对一关系 目前,项目和行业之间没有直接关系,我想保持这样,以实现进一步的搜索功能。因此,在类别表中,列表包含所有行业的类别。

当我构建表单来编辑项目(使用表单小部件)时,我有一个复选框列表,代表类别表中列出的所有类别。

我想按行业对类别选择进行分组。如何仅在表单布局上完成此操作?如何从 twig 小部件表单数据中提取行业值(value)并按行业实体对复选框进行分组?

最佳答案

谢谢李维,

我找不到如何使用行业和类别相关实体来实现上述建议...我终于找到了解决该问题的方法,请告诉我是否有更简单的方法,但这现在很完美。

这是我在 Controller 中的表单

$form = $this->createFormBuilder($project)
            ->add('categories', 'entity', array(
                'class'    => 'ACMEProjectBundle:Category',
                'property' => 'name',
                'expanded' => true,
                'multiple' => true,
                ->getForm();

我还将行业数组传递给渲染形式,每个行业都有一个相关类别的列表

$industries = $this->getDoctrine()->getManager()->getRepository('ACMEProjectBundle:Industry')->findall();

在form.html.twig模板中

        {{ form_errors(form) }}
        <form method="post" {{ form_enctype(form) }}>
        {% for industry in industries %}
            <h4>{{industry.name}}</h4>
            <ul class="unstyled">
                {% for category in industry.categories %}
                    {% set key = category.id %}
                    <li>{{ form_widget(form.categories[key]) }}{{category.name}}</li>
                {% endfor %}
            </ul>
        {% endfor %}
        {{form_rest(form)}}

这给了我想要的结果。

关于symfony - Symfony/twig 中的分组复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21446267/

相关文章:

javascript - 试图调用类 "getRequest"的名为 "AppBundle\Controller\DefaultController"的未定义方法

symfony - SonataAdminBundle表单字段查询

php - JMS 序列化程序覆盖 FOSRestBundle 中的组

android - 使用 StringBuilder 追加

javascript - 如果选中两个或多个复选框,则检查并求和

javascript - 如果没有一个复选框被选中,则阻止表单提交

Symfony2 和 Doctrine - 将数据库结果作为 Controller 中的数组数组返回

symfony - 是否可以在 slug 字段上指定禁止值?

docker - Symfony4/Docker : SQLSTATE[HY000] [2002] Connection refused

symfony1 - 使用 Doctrine 在 Symfony Multi-Tenancy 应用程序中进行数据分离