【发布时间】:2012-11-29 17:30:45
【问题描述】:
另一个问题。我有一个抽象的 BaseLog 实体,它保持与我的用户的关联。 此外,我有 2 个扩展 BaseLog 的实体(FooLog 和 BarLog)。此外,我有我的用户实体,假设它拥有两个与日志的关联。一个用于 FooLog,一个用于 BarLog。这是我的问题。我收到错误消息,因为我不知道如何在扩展实体时覆盖 BaseLog 的 inversedBy 字段。你能帮帮我吗?
因为我觉得我的解释不太好,这里是我的实体的设置。
基础日志
/** @ORM\MappedSuperclass */
abstract class BaseLog {
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="logs")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=true, onDelete="SET NULL")
* })
*/
private $user;
}
FooLog
/** @ORM\Entity */
class FooLog extends BaseLog {
// Some additional fields
}
条形记录
/** @ORM\Entity */
class BarLog extends BaseLog {
// Some additional fields
}
用户
/** @ORM\Entity */
class User {
/**
* @ORM\OneToMany(targetEntity="FooLog", mappedBy="user", cascade={"persist"})
*/
private $fooLogs;
/**
* @ORM\OneToMany(targetEntity="BarLog", mappedBy="user", cascade={"persist"})
*/
private $barLogs;
}
如何在 FooLog 和 BarLog 中覆盖 BaseLog 的 inversedBy。
我在这个设置中遇到了几个映射错误: 基础日志
- BaseLog:关联BaseLog#user是指不存在的反边字段User#logs。
- FooLog:关联FooLog#user引用了不存在的反边字段User#logs。
- BarLog:关联的BarLog#user指的是不存在的反边字段User#logs。
- 用户:映射 User#fooLogs 和 FooLog#user 彼此不一致。
- 用户:映射User#barLogs和BarLog#user彼此不一致。
请帮我整理一下地图。
【问题讨论】:
-
你解决过这个问题吗?我也面临着类似的情况。
-
@hafichuk,有一个重复的问题,那里有一个很好的答案:stackoverflow.com/a/22820964/37706
标签: symfony orm doctrine-orm mapping