Doctrine Symfony原则:多人关系不起作用

Doctrine Symfony原则:多人关系不起作用,doctrine,relationship,symfony,Doctrine,Relationship,Symfony,我是新来的。我想创建一个博客网站。为此,我创建了两个实体post和user。我想我也已经正确地将这两个实体联系起来,如这里所述: http://symfony.com/doc/current/doctrine/associations.html AppBundle/Entity/Post.php: ... /** * Post * * @ORM\Table(name="post") * @ORM\Entity(repositoryClass="AppBundle\Repository\

我是新来的。我想创建一个博客网站。为此,我创建了两个实体post和user。我想我也已经正确地将这两个实体联系起来,如这里所述:

http://symfony.com/doc/current/doctrine/associations.html
AppBundle/Entity/Post.php:

...
/**
 * Post
 *
 * @ORM\Table(name="post")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\PostRepository")
 */
class Post
{   /**
     * @ORM\ManyToOne(targetEntity="User", inversedBy="post")
     * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
     */
    private $user;
    ....
}
AppBundle/Entity/User.php:

...
/**
 * User
 *
 * @ORM\Table(name="user")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\UserRepository")
 */
class User extends BaseUser
{
    /**
     * @ORM\OneToMany(targetEntity="Post", mappedBy="user")
     */
    private $post;
...
}
我成功地用它的用户ID(创建帖子的用户)保存了一篇帖子。但我无法实现相反的效果。i、 e获取用户创建的所有帖子。我正试图做到这一点:

$em = $this->getDoctrine()->getManager();
$user = $em->getRepository('AppBundle:User')->find($this->getUser()->getId());
dump($user->getPost());exit;
但是我没有在变量中得到任何帖子。(仅供参考:数据库中有带有用户id的帖子)。下面是我从上面得到的:

PostController.php on line 163:
PersistentCollection {#103 ▼
  -snapshot: []
  -owner: User {#76 ▶}
  -association: array:15 [ …15]
  -em: EntityManager {#374 …11}
  -backRefFieldName: "user"
  -typeClass: ClassMetadata {#80 …}
  -isDirty: false
  #collection: ArrayCollection {#102 ▼
    -elements: []
  }
  #initialized: false
}
注意:我使用FosUserBundle进行用户管理。不确定它是否在这里制造问题

任何帮助都将不胜感激

谢谢


Parth vora

我在这里找到了问题所在。以上代码都是正确的。我只是忘记调用一个方法来获取用户创建的所有帖子

$em = $this->getDoctrine()->getManager();
$user = $em->getRepository('AppBundle:User')->find($this->getUser()->getId());
dump($user->getPost()->getValues());exit;
getValues()是从PersistentCollection类提取数据的方法

PS:Symfony的文档需要极大的改进:(

谢谢


Parth vora

您重新生成实体了吗?@MaxP.没有。无论如何,问题已经解决