【发布时间】:2016-06-16 14:02:45
【问题描述】:
我正在尝试对 Doctrine 2 实体进行子类化,以添加一堆我想使用的“帮助”功能。
例如,这是我的实体:
namespace Project\Entity;
class Product
{
private $name;
private $idProductCategory;
}
映射是通过 XML 文件完成的。
然后,我尝试扩展它:
namespace Project\Entity;
class ProductJSON extends Product {
public function toJSON() {
/* ... */
}
}
当我尝试在 Doctrine 中使用这个对象时:
$a = $entityManager->getRepository('\Project\Entity\ProductJSON');
我收到“找不到名为 Project.Entity.ProductJSON.dcm.xml 的映射文件”错误。 这是完全正确的,因为我不想要任何额外的映射。
我已广泛阅读 Doctrine 文档和有关映射的超类 (Doctrine: extending entity class),但据我了解,这是为了在 DB 意义上扩展实体。
我不关心数据库/映射,我只想扩展实体 PHP 以在我的应用程序中无缝使用对象。
如何实现这个目标?
【问题讨论】:
-
只是您的示例错误还是您实际上错过了
extends Product声明? -
只是在示例中丢失。编辑谢谢。
标签: php symfony doctrine-orm doctrine subclass