如果数据库中没有数据,则定义默认选择 - Symfony EntityType

Define default selection if no data in db - Symfony EntityType

这是我用来在页面中显示文件的代码。

如果没有数据,我需要一些方法来预定义默认选择。 有什么建议吗?

->add('period', EntityType::class, [
            'required' => false,
            'empty_value' => false,
            'expanded' => true,
            'class' => 'MainBundle\Entity\NotificationsPeriod',
            'query_builder' => function (EntityRepository $er) {
                $qb = $er->createQueryBuilder('u');
                $qb->orderBy('u.id', 'ASC');
                $qb->add('where', $qb->expr()->notIn('u.id', 1));
                return $qb;
            },
            'empty_data' => 2,
        ])

你就快完成了!

您需要设置 empty_data 参数,因为您必须匹配 HTML 中的值。

例如:

//formClass.php
'empty_data' => 2,

然后..

//template.twig
<select name="whatever">
  <option value="2">Something</option>
  {# build your options from data.. #}
</select>

官方文档在这里:http://symfony.com/doc/current/reference/forms/types/choice.html#empty-data