给出的类型为"Doctrine\Common\Collections\Collection","Proxies\__ CG __\MyBundle\Entity\MyEntity"的预期参数

S.T*_*ane 2 symfony

我试图解决这个问题:

给出"Doctrine\Common\Collections\Collection"类型的预期参数,"Proxies__CG __\MyBundle\Entity\MyEntity"

我尝试了许多没有解决方案的东西.我尝试这个时得到了它:

$userCollection = $this->createForm(new UserCollectionType(), $userEvalClass);
Run Code Online (Sandbox Code Playgroud)

UserCollectionType

class UserCollectionType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('users', 'entity', array(
                'label' => 'Evaluateurs',
                'empty_value' => '',
                'expanded' => false,
                'multiple' => true,
                'class' => 'EvalFour\UtilisateurBundle\Entity\Utilisateur',
                utilisateurs
            )
        );
    }

    public function getName()
    {
        return 'user_collection';
    }
}
Run Code Online (Sandbox Code Playgroud)

UserCollection

class UserCollection    
{
    public $users;

    public function __construct($users){
        $this->users = $users;
    }
    public function getUsers(){
        return $this->users;
    }
}
Run Code Online (Sandbox Code Playgroud)

Pie*_*eau 5

在你的buildForm函数中,设置 'multiple' => false,

当您将其设置为true时,它需要一组实体而不仅仅是一个实体.

如果您确实想拥有多个用户,请替换'entity''collection'

  • 用“集合”替换“实体”是什么意思?!它们是完全不同的 FormType,因此不能互换替换! (2认同)