3

我真的很想知道是否有办法使用动态参数(例如字符串)调用服务?

实际上,我需要将它用于表单类型(定义为服务),这使它变得更复杂一些。

表格类型:

class MyFormType extends AbstractType
{
    private $em;
    private $parameter;

    public function __construct(EntityManager $em, $parameter)
    {
        $this->em = $em;
        $this->parameter = $parameter;
    }

    // ...
}

服务配置

my.form_type:
    class: My\Form\Type\Class
    arguments: [ @doctrine.orm.entity_manager ]
    tags:
        - { name: form.type, alias: form_name }

然后当我需要以另一种形式使用它时:

class SecondFormType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('custom', 'my.form_type');
        ;
    }
}

我想知道如何在第一个表单类型类中设置“参数”属性。如果我在控制器中,我将能够创建一些 getter/setter 方法,但在这里我被困在表单类型中。

实际上我自己并没有实例化表单类型,因为我还需要将它注入实体管理器,这就是我将它定义为服务的原因。

4

0 回答 0