6

我有一个实体 'listing' 与 OneToMany 到实体 'view',它们之间的键是 view.content_id ,它包含列表的 ID,但是,它也与其他实体有关,所以通过添加

/**
 * @var Listing
 *
 * @ORM\ManyToOne(targetEntity="\Acme\Bundle\Entity\Listing", inversedBy="views")
 * @ORM\JoinColumns({
 *   @ORM\JoinColumn(name="content_id", referencedColumnName="id")
 * })
 */
private $listing;

对于视图,它会刹车,因为在保存视图实体时 content_id 变为空。

我该如何解决?

上市方关系:

/**
 * @var views
 *
 * @ORM\OneToMany(targetEntity="\Acme\Bundle\Entity\View", mappedBy="listing")
 * @ORM\JoinColumns({
 *   @ORM\JoinColumn(name="id", referencedColumnName="content_id")
 * })
 */
private $views;

我通过加入 Listing.views 并添加 WITH content_type = :ContentType 来进行查询,它可以区分一些“视图”结果。

4

1 回答 1

0

我参加聚会很晚,但我想我会回答,以防它帮助别人。

由于您在两个实体之间建立了关系,您现在必须将一个对象分配给该属性,而不是 FK 值本身。像这样:

$listing = $em->getRepository('Acme\Bundle\Entity\Listing')
              ->find($content_id);
$view->setListing($listing);

并不是:

$view->setListing($content_id);

当然,如果结果是别的东西,我很想知道。

:^)

于 2015-06-02T19:24:10.350 回答