当我想在 Symfony 2 (2.8.9) 生成的表单中的选择 (selected="selected") 中设置默认值时遇到问题。
我的 Controller 中有这段代码:
$news = new News();
$news->setCategory(1);
//create form
$form = $this->createForm(NewsType::class, $news);
这在我的 FormType 中
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('category', EntityType::class,
array(
'placeholder' => 'Choise',
'class' => 'AppBundle:NewsCat',
'choice_label' => 'name'
));
}
AppBundle:NewsCat 创建一个 id => name 的列表(例如:1 => 'Sport',2 => 'Politic' 等),我希望当我设置类别(1)时应该看到“Sport “在我的选择中选择=“选择”。
现在我看到了“选择”。
我已经试着在网上到处搜索,希望你能帮助我:)
感谢大家
最佳答案
您需要使用数据选项来设置选定的对象。下面是我的示例。
$defaultTech = $company->getDefaultTech();
if ($company->getForceDefaultTech() && $defaultTech != null) {
$builder->add('tech', HiddenType::class, ['data' => $defaultTech->getId()]);
} else {
$builder->add('tech', EntityType::class, [
'class' => 'HelpBundle\Entity\UserAccount',
'choice_label' => 'displayName',
'data' => $defaultTech,
'query_builder' => function (EntityRepository $er) use ($company) {
$qb = $er->createQueryBuilder('ua');
return $qb
->where('ua.company = :company')
->andWhere('ua.techie = 1')
->setParameter('company', $company);
},
]);
}
关于php - 在 EntityType 中选择 Symfony2 集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39182224/