Symfony 2表单主题相关实体

时间:2019-03-18 13:05:29

标签: php symfony symfony-2.4

我正在使用Symfony 2.4。

我有2个具有OneToMany和ManyToOne关系的实体。

我正在用树枝渲染实体。

class SomeController extends Controller
{

    /**
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function listAction()
    {
        $em = $this->getDoctrine()->getManager('some_manager');
        $entities = $em->getRepository('SomeBundle:SomeClass')->findAll();

        return $this->render('SomeBundle:list.html.twig', ['entities' => $entities]);
    }
    ...

直截了当的东西。工作正常,没有问题。还有更多要做的事情。


表格如下:

class FirstType extends AbstractType
{
    /**
     * Build the form elements
     *
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('url', 'hidden')
            ->add('secondEntity', 'collection', ['type' => new SecondType()])
        ;
    }
    ...

class SecondType extends AbstractType
{
    /**
     * Build the form elements
     *
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('value')
            ->add('type')
        ;
    }

再次,效果很好。


树枝

{% block content %}

    <form method="post" class="form form-horizontal">
        {{ form_start(form) }}
        {{ form_row(form._token) }}

        {{ form_errors(form.url) }}
        {{ form_widget(form.url) }}

        {{ form_errors(form.secondEntityGetterName) }}
        {{ form_widget(form.secondEntityGetterName) }}

        <div class="form-actions">
            <button type="submit" class="btn btn-primary">Submit</button>
        </div>

        {{ form_end(form) }}
    </form>
{% endblock content %}

这里一切都很好。但是,由于它们是相关的,Symfony坚持显示与之相关的实体数量。

类似enter image description here

请注意屏幕截图左侧的整数。我想删除这些内容,只保留屏幕截图的右侧。

我有RTFM,但未指定相关实体的任何内容。

我尝试在树枝内使用各种吸气剂,希望可以分别渲染每个元素。到目前为止,这更是一个麻烦,而不是其他任何事情。

我确定必须有更好的方法。

0 个答案:

没有答案