Doctrine2 OneToMany没有mappedBy

Pax*_*ton 6 doctrine symfony

我有一个实体'列表'与OneToMany到实体'视图',这些之间的关键是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;
Run Code Online (Sandbox Code Playgroud)

对视图进行制动,因为在保存视图实体时,content_id变为null.

我该如何解决?

上市方面的关系:

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

我通过加入Listing.views并添加WITH content_type =:ContentType来查询某些"视图"结果,从而进行查询.

小智 0

我来参加聚会已经很晚了,但我想我会回答,以防它对其他人有帮助。

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

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

并不是:

$view->setListing($content_id);
Run Code Online (Sandbox Code Playgroud)

当然,如果结果是别的什么,我很想知道。

:^)