我必须将自定义选项传递给 symfony 表单。我一步一步按照文档设置,但我的选项不会通过。
表单类型
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(),
));
em
Symfony 会抛出我的选项丢失的异常。
例外:缺少必需的选项“em”。
我按照教程添加了一个数据转换器:http ://symfony.com/doc/current/cookbook/form/data_transformers.html
我清除了缓存并重新启动了我的网络服务器,但没有任何效果。我做错了什么?我是否错过了通过我的配置$options
?看起来$options
我传递的控制器中的数组永远不会到达该buildForm
方法。
我正在使用 Symfony v2.3.5。为了测试我更新到最新(2.3.6),但问题仍然存在。
干杯。