0
我的代码有问题。我有这个错误:Symfony ManyToMany与实体类型
The property "users" in class "Wiki\AdminBundle\Entity\Post" can be defined with the methods "addUser()", "removeUser()" but the new value must be an array or an instance of \Traversable, "Wiki\AdminBundle\Entity\User" given.
我不明白我的代码发生了什么。
这是我的FormType:
<?php
namespace Wiki\AdminBundle\Form;
use Doctrine\ORM\EntityRepository;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Tests\Fixtures\Entity;
use Wiki\AdminBundle\Entity\Post;
class PostType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('title')
->add('users', EntityType::class, [
'class' => 'WikiAdminBundle:User',
'choice_label' => 'username',
])
->add('status')
->add('save', SubmitType::class)
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Post::class,
]);
}
}
在这里,我的帖子实体:
<?php
namespace Wiki\AdminBundle\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Wiki\AdminBundle\Traits\Entity as EntityTraits;
use Gedmo\Mapping\Annotation as Gedmo;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity
* @ORM\Table(name="post")
* @ORM\Entity(repositoryClass="Wiki\AdminBundle\Entity\Repository\PostRepository")
* @ORM\HasLifecycleCallbacks
*/
class Post
{
use EntityTraits\IdTrait;
use EntityTraits\DateCreated;
/**
* @ORM\Column(name="title", type="text")
*/
private $title;
/**
* @ORM\ManyToMany(targetEntity="Wiki\AdminBundle\Entity\User", mappedBy="posts", cascade={"persist"})
* @ORM\Column(name="author", type="text")
*/
private $users;
/**
* @ORM\Column(name="status", type="integer")
*/
private $status;
public function __construct()
{
$this->users = new ArrayCollection();
}
/**
* @return mixed
*/
public function getTitle()
{
return $this->title;
}
/**
* @param mixed $title
*/
public function setTitle($title)
{
$this->title = $title;
}
/**
* @return mixed
*/
public function getStatus()
{
return $this->status;
}
/**
* @param mixed $status
*/
public function setStatus($status)
{
$this->status = $status;
}
public function addUser(User $user)
{
$this->users->add($user);
$user->addPost($this);
}
public function removeUser(User $user)
{
$this->users->removeElement($user);
}
/**
* @return mixed
*/
public function getUsers()
{
return $this->users;
}
}
有人可以帮我解决我的问题呢?
最好的问候,