2016-06-08 2 views
1

DoTorine은 OneToMany 관계로 힘든 시간을 보내고 있습니다. Doctrine은 결코 Collection을 채우지 않습니다. 여기 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 내가 $user->getPosts() 그것을 반환 할 경우에도 null

입니다 null

$posts이 null입니까? 그것은 적어도 array

내 DB 게시물은 사용자에 연결이되어야합니다 1

내가 Post와 동일한 작업을 수행하는 경우 게시물은 동료 사용자로 채워 자동 도와

감사입니다 당신의 포스트 클래스에서

답변

0

은 당신이 수행

public function setUser($user){ 
    $user->addPost($this); 
    $this->user= $user; 
} 

은 아마 당신이 그런 일을해야합니다.

다음에 2 번 편집하십시오.

private $posts = null; 
... 
/* 
* Add posts to the array. 
*/ 
public function addPost($post){ 
    $this->stu_posts [] = $post; 
} 
+0

내가 그것을 추가,하지만 여전히'posts' 내가 내 게시물을 업데이트 – sonique

+0

널 :

또한 사용자 클래스, 그것은 다음과 같이해야한다. 아마 당신은 올바르게 설정하지 않았을 것입니다 - 제가 지시 한 것처럼 그것을 확인하십시오. 이것은 효과가있다. –

+0

문제가 계속되면 알려주세요. –

관련 문제