gpt4 book ai didi

symfony-forms - 如何获取表单类型的实体管理器

转载 作者:行者123 更新时间:2023-12-04 06:30:40 26 4
gpt4 key购买 nike

构建表单时如何获取实体管理器?

我想从数据库中搜索结果并为choicetype 构建选项。我知道我可以改用实体类型,但在这种情况下,我想在数据库中记录字符串而不是对象。而且我还需要添加更多选项。

谢谢。

最佳答案

在 Symfony 3.2 中(可能还有其他版本,我不确定 3.1,但可能是一样的),$this->createForm() 方法需要一个字符串作为第一个参数,并且不能采用表单对象。

在表单类中添加 configureOptions 方法:

class YourFormType extends AbstractType
{

public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'entityManager' => null,
]);
}

public function buildForm(FormBuilderInterface $builder, array $options)
{
// Entity Manager is set in: $options['entityManager']
}
}

然后像这样在 Controller 中获取表单,传入实体管理器:

$form = $this->createForm(
YourFormType::class,
$yourEntity,
[
'entityManager' => $this->getDoctrine()->getManager(),
]
);

关于symfony-forms - 如何获取表单类型的实体管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43092104/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com