我有以下形式,其中我想通过以与数据来填充它们的某些对象到内部形式被编辑时:通过/绑定数据对象内/嵌入的Symfony2形成
public function __construct($em, $id) { $this->_em = $em; } public function buildForm(\Symfony\Component\Form\FormBuilderInterface $builder, array $options) { $builder->add('accessInfo', new AccessInfoType($this->_em, $options[ 'entities' ][ 'user' ]) , array( 'attr' => array('class' => 'input-medium'), 'required' => false, 'label' => false ) ); $builder->add('profileInfo', new ProfileInfoType($this->_em, $options[ 'entities' ][ 'profile' ]) , array( 'required' => false, 'label' => false ) ); } public function setDefaultOptions(\Symfony\Component\OptionsResolver\OptionsResolverInterface $resolver) { $resolver->setDefaults($this->getDefaultOptions(array())); return $resolver->setDefaults(array()); } /** * {@inheritDoc} */ public function getDefaultOptions(array $options) { $options = parent::getDefaultOptions($options); $options[ 'entities' ] = array(); return $options; } public function getName() { return 'UserType'; }
其我实例化下面的代码:
$form = $this->createForm(new UserType($em), null, array('entities' => array('user' => $userObj, 'profile' => $profileObj)));
一旦我得到的,通过构造,包含所需数据的对象有谁知道我怎么可能对象绑定到形式?
class ProfileInfoType extends AbstractType { private $_em; public function __construct($em, $dataObj) { $this->_em = $em; $this->_dataObj = $dataObj; }
谢谢先进!
感谢之道,也许我missexplained或者你没有正确理解这个问题。我试图将一个对象绑定到内部/嵌入式表单,以便让Symfony2在模板打印时填充表单。 – user846226 2013-04-22 14:43:40
@ user846226我觉得我不太明白......你能解释一下你想达到的目标吗......你可能在谈论集合(http://symfony.com/doc/2.1/cookbook/form /form_collections.html)。 – Michi 2013-04-22 16:21:52
嗨Michi,不,我不是在谈论收藏。我创建了嵌入其他子窗体类型的父窗体类型,因为我想Symfony2填充数据的嵌套窗体我正在寻找一种方法将数据传递给子窗体,现在我通过构造函数。一旦孩子得到对象来填充表单,我需要进行某种调用来填充表单。现在我试图通过封闭来实现它http://symfony.com/doc/currentbook/form/use_empty_data.html – user846226 2013-04-22 17:38:14