動的パラメーター (文字列など) を使用してサービスを呼び出す方法があるかどうか知りたいです。
実際には、フォーム タイプ (サービスとして定義) にこれが必要なため、もう少し複雑になります。
フォームタイプ:
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');
;
}
}
最初のフォーム タイプ クラスで「パラメータ」属性を設定する方法を知りたいです。私がコントローラーにいた場合、いくつかのゲッター/セッターメソッドを作成できますが、ここではフォームタイプで立ち往生しています。
フォーム タイプを自分でインスタンス化することはありません。エンティティ マネージャーにも注入する必要があるためです。そのため、フォーム タイプをサービスとして定義しました。