У меня тяжелое время с отношением OneToMany, Doctrine никогда не заполняет коллекцию.Doctrine 2, OneToMany никогда не был заселен
Вот мои классы:
class User
{
...
/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Post", mappedBy="idUser", cascade={"all"})
*/
private $posts;
public function getPosts() {
return $this->posts;
}
public function __construct() {
$this->posts = new \Doctrine\Common\Collections\ArrayCollection();
}
...
}
class Post {
...
/**
* @var \AppBundle\Entity\User
*
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\User" , inversedBy="posts" , cascade={"all"})
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="id_user", referencedColumnName="id")
* })
*/
private $idUser;
...
}
Когда я получаю объект пользователя следующим образом:
$user = $this->getDoctrine()
->getRepository('AppBundle:User')->find(1);
$user
заселена, но $posts
является null
Кроме того, если я $user->getPosts()
его возвращение null
Почему $posts
null? она должна быть по крайней мере array
Мой DB имеет сообщение связано с пользователем 1
Если я сделать то же самое с Post
, пост является автоматически заполняется ассоциированным пользователем
Спасибо за вашу помощь
Я добавил его, но все равно 'posts' равно нулю – sonique
Я обновил свой пост. Возможно, у вас нет правильной настройки - проверьте, как я указал. Это должно сработать. –
Сообщите мне, если у вас все еще есть проблемы. –