我必須將自定義選項傳遞給symfony表單。我一步一步跟蹤了文檔setp,但我的選項不會通過。如何將自定義選項傳遞給Symfony表單
的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),但問題依然存在。
乾杯。
呃,我討厭它發生這種情況!哈哈。 – Tek