我在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条记录。
任何人都可以就原因提供任何指导吗?
答案 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,
))
这很有效。