【问题标题】:symfony2 - doctrine - oneToManysymfony2 - 教义 - oneToMany
【发布时间】:2012-01-30 13:22:53
【问题描述】:

我在我的实体中定义了以下关系:

实体区域

/**
 * @var areaHasCategory $categories
 * 
 * @ORM\OneToMany(targetEntity="areaHasCategory", mappedBy="area", cascade={"ALL"})"
 */    
private $categories;

实体 areaHasCategory

/**
 * @var area $area 
 * 
 * @ORM\Id 
 * @ORM\ManyToOne(targetEntity="area", inversedBy="categories")
 * @ORM\JoinColumn(name="pkfkArea", referencedColumnName="pkId", nullable=false) 
 */
private $area;

/**
* @var category $category
*
* @ORM\Id
* @ORM\ManyToOne(targetEntity="category", inversedBy="areas")
* @ORM\JoinColumn(name="pkFkCategory", referencedColumnName="pkId", nullable=false)
*/
private $category;

实体类别

/**
* @var areaHasCategory $areas
* 
* @ORM\OneToMany(targetEntity="areaHaCategory", mappedBy="category", cascade={"ALL"})"
*/
private $areas;

当我从控制器中的数据库读取区域时,类别的 arrayCollection 为空。 我用夹具保存了数据。 探查器显示所有选择语句,当我执行从类别表中读取数据的查询时,一切都很好。 但是 $area->getCategories() 是空的。

有人知道我做错了什么吗?

【问题讨论】:

  • 没人知道我的问题吗?

标签: symfony doctrine-orm


【解决方案1】:

尽量不要将@ORM\Id 用于关系字段,并为主键添加单独的字段。

【讨论】:

  • 我只发布了示例代码。原始的 City Table 有两个外键,这些键加在一起是唯一的。你觉得这是个问题吗?
猜你喜欢
  • 2016-05-16
  • 2012-01-06
  • 1970-01-01
  • 2012-01-23
  • 2014-04-23
  • 1970-01-01
  • 2012-02-10
  • 2011-09-10
  • 2015-12-21
相关资源
最近更新 更多