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');
        ;
    }
}

最初のフォーム タイプ クラスで「パラメータ」属性を設定する方法を知りたいです。私がコントローラーにいた場合、いくつかのゲッター/セッターメソッドを作成できますが、ここではフォームタイプで立ち往生しています。

フォーム タイプを自分でインスタンス化することはありません。エンティティ マネージャーにも注入する必要があるためです。そのため、フォーム タイプをサービスとして定義しました。

4

0 に答える 0