Forms 从表单类获取存储库名称
我希望在form类中使用repository name,以便可以基于ORM模型创建字段。我该怎么做 我问这个问题是因为这个表单类对于几个存储库类来说是通用的 这就是我想要创建表单的方式:Forms 从表单类获取存储库名称,forms,symfony,doctrine-orm,Forms,Symfony,Doctrine Orm,我希望在form类中使用repository name,以便可以基于ORM模型创建字段。我该怎么做 我问这个问题是因为这个表单类对于几个存储库类来说是通用的 这就是我想要创建表单的方式: $builder->add($field_name, 'entity', [ 'class' => 'TestBundle:'.$something, // entity name should go here 'property' =
$builder->add($field_name, 'entity', [
'class' => 'TestBundle:'.$something, // entity name should go here
'property' => $field_name,
'disabled' => true,
'data' => $data,
]);
这个方法位于
TestBundle\Form\Type
名称空间表单类中。我该怎么做?我还可以访问该类中的$this->getdoctor()->getManager()->getRepository('TestBundle:Repo')
。这应该指定为表单类型的强制选项:
class MyType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder->add(..., [
'class' => 'TestBundle:' . $options['repository_name'],
...
]);
}
public function setDefaultOptions(OptionsResolverInterface $resolver) {
$resolver->setRequired(['repository_name']);
}
}
稍后,当您创建表单时,必须以以下方式使用它:
$form = $this->createForm(new MyType(), $someData, [
'repository_class' => 'Abcdef'
]);