Symfony2表单查询崩溃

时间:2016-02-18 09:31:46

标签: forms symfony query-builder

我在Symfony 2.7.9 FormType表单中有以下语句;

    $builder
        ->add(
            'team',
            'entity',
            array(
                'class' => 'NmsClubBundle:Team',
                'query_builder' => function (EntityRepository $er) use ($club_id) {
                    return $er->createQueryBuilder('t')
                        ->where('t.club = :club')
                        ->andWhere('t.active = 1')
                        ->orderBy('t.title', 'ASC')
                        ->setParameter('club', $club_id);
                },
            )
        )

在具有少量记录的数据库中,选择正常。 在具有许多记录的数据库中,此语句会导致服务器崩溃,即使查询仅返回6条记录。

任何人都可以就原因提供任何指导吗?

1 个答案:

答案 0 :(得分:0)

我想我有一个解决方案,但仍然不知道原因。 PHP可用内存增加到1024Mb。结果相同。将内存设置为256Mb。 我将查询移动到控制器并将一个对象数组传递给FormType。 “表单”构建器如下所示

        $builder
        ->add('team', 'entity', array(
            'class' => 'NmsClubBundle:Team',
            'choices' => $teams,
        ))

同样的问题。 所以我回到控制器并从对象数组中创建了一个(index => name)数组。然后将“表单”构建器更改为“

        $builder
        ->add('team', 'choice', array(
            'choices' => $teams,
            'label' => 'Teams',
            'data' => key($teams),
            'mapped' => false,
        ))

这很有效。