【发布时间】:2016-09-06 10:11:03
【问题描述】:
我是 Symfony 的新手。我想创建一个博客网站。因此,为此我创建了两个实体帖子和用户。我想我也已经正确地关联了这两个实体,如下所述:
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(创建帖子的用户)的帖子。但我无法实现相反的效果。即获取用户创建的所有帖子。我正在尝试这样实现它:
$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 进行用户管理。不知道这里是否有问题。
任何帮助将不胜感激。
谢谢,
帕斯沃拉
【问题讨论】:
-
你是否重新生成了实体?
-
@MaxP。不,我没有。总之,问题已经解决了
标签: doctrine relationship symfony