Dav*_*les 2 symfony symfony-2.2
我需要将一个参数传递给在Form Type中使用的Entity的构造函数.
我正在setDefaultOptions方法中的Form Type中设置实体:
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'MyApp\MyBundle\Entity\MyEntity'
));
}
Run Code Online (Sandbox Code Playgroud)
我想用这样的东西:
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'MyApp\MyBundle\Entity\MyEntity',
'my_parameter' => 'some value'
));
}
Run Code Online (Sandbox Code Playgroud)
这样它就会通过构造函数注入.
这可能吗?(我正在使用Symfony 2.2)
我想你正在寻找这个http://symfony.com/doc/master/cookbook/form/use_empty_data.html#option-2-provide-a-closure
假设你有数据Money对象,它有两个参数金额和货币.这是这种对象的表单类型:
<?php
class MoneyType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('amount', 'number')
->add('currency', 'text')
;
}
/**
* {@inheritdoc}
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Foo\Model\Money',
'empty_data' => function (FormInterface $form) {
return new Money(
$form->getData()['amount'],
$form->getData()['currency']
);
},
));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7213 次 |
| 最近记录: |