php - 在 EntityType 中选择 Symfony2 集

标签 php forms symfony select

当我想在 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 “在我的选择中选择=“选择”。

现在我看到了“选择”。

我已经试着在网上到处搜索,希望你能帮助我:)

感谢大家

HTML code screen

最佳答案

您需要使用数据选项来设置选定的对象。下面是我的示例。

$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/

相关文章:

javascript - Canvas 与服务器生成的图形

php - 获取记录时出现 mysql 错误

php - 选择相互关注者

javascript - 使用 React Redux 提交 FORM 数据的最佳方式?

php - 在 Symfony2 中从(POP3 或 IMAP)邮箱检索和解析电子邮件

mysql - SUBSTRING_INDEX 在 Doctrine 2 中不被认可

php time() 与 mktime() 当前时间戳

javascript - 是否可以在页面上拆分 <form> 标记?

javascript - HTML 有 2 个表单,但 document.forms 只找到 1 个

php - 从 Symfony2 中的嵌入式 Controller 重定向