カスタムオプションを symfony フォームに渡す必要があります。ドキュメントの setp を順を追って実行しましたが、私のオプションは成功しません。
FormType
class AdvertType extends AbstractType
{
/**
* {@inheritDoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$entityManager = $options['em'];
}
/**
* {@inheritDoc}
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setRequired(array(
'em',
));
$resolver->setAllowedTypes(array(
'em' => 'Doctrine\Common\Persistence\ObjectManager',
));
}
/**
* {@inheritDoc}
*/
public function getName()
{
return 'advert';
}
}
これがコントローラーからのコードです。
$form = $this->createForm(new AdvertType(), new Advert(), array(
'em' => $this->getDoctrine()->getManager(),
));
symfony は、オプションem
が欠落しているという例外をスローします。
例外: 必要なオプション "em" がありません。
チュートリアルに従って、データ トランスフォーマーを追加しました: http://symfony.com/doc/current/cookbook/form/data_transformers.html
キャッシュをクリアして Web サーバーを再起動しましたが、何も機能しません。私は何を間違えたのですか?渡すための構成を見逃してい$options
ませんか? 渡したコントローラーの$options
配列がbuildForm
メソッドに到達しないようです。
Symfony v2.3.5 を使用しています。テストのために最新 (2.3.6) に更新しましたが、問題はまだ存在します。
乾杯。