Doctrine orm SF2中的表单集合 Offers.php OfferParameter.php OfferType.php OfferParameterType.php

Doctrine orm SF2中的表单集合 Offers.php OfferParameter.php OfferType.php OfferParameterType.php,doctrine-orm,symfony,Doctrine Orm,Symfony,我的问题是。。。。你他妈的怎么在SF2中删除表单集合中的元素 在我的项目中,我有多种类似于此的表单,这真的让开发陷于停顿:( 感谢您的帮助!您可能需要执行以下操作: ->add('parameters', 'collection', array( 'type' => new OfferParameterType(), 'allow_add' => true, 'allow_delet

我的问题是。。。。你他妈的怎么在SF2中删除表单集合中的元素

在我的项目中,我有多种类似于此的表单,这真的让开发陷于停顿:(


感谢您的帮助!

您可能需要执行以下操作:

->add('parameters', 'collection', array(
                'type' => new OfferParameterType(),
                'allow_add' => true,
                'allow_delete' => true,
                'attr'=>array('style'=>'display:none;')
            ))
->add('field',null, array('attr'=>array('style'=>'display:none;')))
这将隐藏整个OfferParameterType集合

或在OfferParameterType中,对每个字段应用相同的内容,如下所示:

->add('parameters', 'collection', array(
                'type' => new OfferParameterType(),
                'allow_add' => true,
                'allow_delete' => true,
                'attr'=>array('style'=>'display:none;')
            ))
->add('field',null, array('attr'=>array('style'=>'display:none;')))

您到底想做什么?另外,请查看上的文档,以获取有关标记为
的代码的帮助,这不应该是必需的

public function process()
{
    if ('POST' == $this->request->getMethod()) {
        // bind form data
        $this->form->bindRequest($this->request);

        // If form is valid
        if ($this->form->isValid() && ($offer = $this->form->getData()) instanceof Offer) {

            foreach ($offer->getParameters() as $parameter) {
                $parameter->setOffer($offer); // THIS SHOULDNT BE NEEDED
            }

            // save offer to the database
            $this->entityManager->persist($offer);
            $this->entityManager->flush();

            return true;
        }
    }

    return false;
}
->add('parameters', 'collection', array(
                'type' => new OfferParameterType(),
                'allow_add' => true,
                'allow_delete' => true,
                'attr'=>array('style'=>'display:none;')
            ))
->add('field',null, array('attr'=>array('style'=>'display:none;')))