1

Entity との関係Newsを含むEntity という名前があります。これは、複数の著者が記事を書くことができることを意味します。ManyToManyUser

/**
* @ORM\ManyToMany(targetEntity="GW2\UserBundle\Entity\User")
*/
private $authors;

問題は、追加に使用する形式で作成者を動的に追加したいのですが、データを保存する方法と、2 つのエンティティ間の関係を維持するNews方法がわからないことです。著者の数は固定ではなく、制限もありません。

この型について調べて にcollection追加しましたが、NewsType使い方がよくわかりません。


編集:これが私の現在のニュースタイプです(著者なしcollection):

<?php
namespace GW2\SiteBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class NewsType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('title', 'text', array('error_bubbling' => true))
            ->add('introduction', 'textarea', array('attr' => array('class' => 'input-block-level redactor_content'), 'error_bubbling' => true))
            ->add('content', 'textarea', array('attr' => array('class' => 'input-block-level redactor_content'), 'error_bubbling' => true))
            ->add('publication', 'checkbox', array('required' => false, 'error_bubbling' => true))
            ->add('categories', 'entity', array(
                'class' => 'GW2SiteBundle:Category',
                'property' => 'name',
                'required' => false,
                'multiple' => true
            ))
        ;
    }

    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'GW2\SiteBundle\Entity\News'
        ));
    }

    public function getName()
    {
        return 'gw2_sitebundle_newstype';
    }
}
4

1 に答える 1

0

とオプションcollectionを指定しながら、FOSUBタイプでを追加することで、最終的に問題を修正しました。allow_addallow_delete

->add('authors', 'collection', array(
    'type'=> 'fos_user_username',
    'allow_add' => true,
    'allow_delete' => true
))

次に、JavaScriptを使用して追加と削除のソリューションを追加し、フォームにフィールドを動的に追加しました(Thomas Potaireに感謝)。

于 2013-03-20T21:31:00.207 に答える