我有以下复合形式,我想在位置传递作为模型/对象到LocationType
,我怎么能在buildForm
内做同样的事情?
如果这是一个普通的控制器,那么我会这样做:
$registrationForm = $this->createForm(new ShopRegistrationFormType(), $location, array('label' => false, 'required' => false));
,但我怎么能做同样的事情在FormType
,我有下面:
class ShopRegistrationFormType extends AbstractType
{
private $location;
public function __construct( $location = null)
{
$this->location = $location;
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('location', new LocationType())
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'cascade_validation' => true,
));
}
public function getName()
{
return 'shop_registration';
}
}
尝试通过'data'属性添加模型/对象:
class ShopRegistrationFormType extends AbstractType
{
private $location;
public function __construct( $location = null)
{
$this->location = $location;
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('location', new LocationType(), array(
'data' => $this->location,
));
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'cascade_validation' => true,
));
}
public function getName()
{
return 'shop_registration';
}
}
希望能有所帮助。