【发布时间】:2015-08-12 10:20:12
【问题描述】:
我有一个具体问题。我有两个实体:
class MyPlaylist {
...
/**
* @var Array
* @ORM\OneToMany(targetEntity="MyPlaylistContent", mappedBy="myPlaylist", orphanRemoval=true)
* @ORM\OrderBy({"position" = "DESC"})
*/
private $myPlaylistItems;
和
class MyPlaylistContent {
....
/**
* @ORM\ManyToOne(targetEntity="MyPlaylist", inversedBy="myPlaylistItems")
*/
private $myPlaylist;
现在我的服务
中有这个....
$myPlaylist = new MyPlaylist();
$myPlaylist->setUser($user);
$myPlaylist->setActive(true);
// add tracks
foreach ($playlist->getMyPlaylistItems() as $item) {
$entity = new MyPlaylistContent();
$entity->setTrack($item->getTrack());
$entity->setMyPlaylist($myPlaylist);
$this->em->persist($entity);
}
$this->em->persist($myPlaylist);
$this->em->flush();
\Doctrine\Common\Util\Debug::dump($myPlaylist);
return $myPlaylist;
所以,我返回一个新的播放列表。如果我查看数据库,一切正常。我有两个实体和 MyPlaylistContent - 3 首曲目。但是
\Doctrine\Common\Util\Debug::dump($myPlaylist); 显示下一个
["active"]=> bool(true) ["myPlaylistItems"]=> array(0) { }
在页面上,应用程序显示空的播放列表(无曲目)。如果我刷新页面,我可以看到所有曲目。
关键是,如果您打开页面,控制器将调用服务,构建内容并返回列表作为响应。 它看起来像同一个例子,但它对我不起作用 http://symfony.com/doc/current/book/doctrine.html#saving-related-entities
这里有什么问题?为什么我没有获取当前实体的轨迹?
【问题讨论】:
标签: php symfony doctrine-orm