在EntityType中选择的Symfony2集

时间:2016-08-27 14:29:38

标签: php forms symfony select

我在使用Symfony 2(2.8.9)生成的表单中选择(选择="选择")时设置默认值时出现问题。

我的控制器中有这个代码:

$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 =>的列表名字(例如:1 =>' Sport',2 =>' Politic'等),我希望当我设置类别(1)时应该看到#34 ;运动"选中="选择"在我的选择中。

现在我看到" Choise"。

我试图在网络上的任何地方搜索,我希望你能帮助我:)。

感谢所有

HTML code screen

1 个答案:

答案 0 :(得分:2)

您需要使用数据选项来设置所选对象。我的例子如下。

$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);
        },
    ]);
}