我们正在使用Doctrine v2.2.1。使用YML定义的实体。
这里我有2个实体,它们互相引用给定的关联;
entities\User:
type: entity
table: user
oneToMany:
subjectNews:
targetEntity: entities\News
mappedBy: subjectUser
cascade: ["all"]
actionNews:
targetEntity: entities\News
mappedBy: actionUser
cascade: ["all"]
entities\News:
type: entity
table: news
manyToOne:
subjectUser:
targetEntity: entities\User
cascade: ["all"]
nullable: true
actionUser:
targetEntity: entities\User
cascade: ["all"]
nullable: true
当我根据这些定义生成Entity类时,我在entity \ User php类中得到了意外的结果。这就像;
/**
* Add subjectNews
*
* @param entities\News $subjectNews
* @return User
*/
public function addNews(\entities\News $subjectNews)
{
$this->subjectNews[] = $subjectNews;
return $this;
}
我的实体中的setter方法可以按预期生成。但是实体\用户的添加方法没有按预期生成。
我做错了吗?或者有任何解决方法吗?或者它与the issue referred in the Limitations and Known Issues doc of Doctrine2?
有关和平
答案 0 :(得分:2)
这也是我使用Doctrine ORM遇到的问题之一。虽然我不知道一个优雅的解决方案,我知道你可以使用get方法来获取ORM集合,只需添加你想要的实体。一个例子是,
$actionNews = $user->getActionNews();
$actionNews[] = new entities\News();
或subjectNews
$subjectNews = $user->getSubjectNews();
$subjectNews[] = new entities\News();
希望这会有所帮助..