设想我们有几个表:table_item,table_category,table_items_status。 使用自己的实体在单一模式(无关系)中通过服务进行更新。
我可以,以及如何创建一个仅具有此表关系的实体,例如类似的东西......
**
* @ORM\OneToOne(targetEntity="table_item")
* @ORM\JoinColumn(name="itemID", referencedColumnName="itemID")
**
private $tableItemIDByItemID
// ... getter\setter
**
* @ORM\Column(type="integer")
**
private $itemID;
// ... getter\setter
在php代码中我想简单地调用
$entity->setItemID(123);
$result = $entity->getTableItemIDByItemID();
并且将通过itemID从table_item获取ArrayCollection()。
我想要的主要事情只创建额外的实体,只有几个表的关系,只有单向。我需要这个来创建实体而不需要为了关系而触及另一个实体。
答案 0 :(得分:0)
您应该查看实体存储库。这些提供了一些基本功能查询,但您可以使用自己的自定义查询扩展它们(例如:getItemIDByItemID)。它被称为存储库模式。实体只是数据库的对象表示。
Symfony2手册:
“为您的实体创建自定义存储库类并使用您的查询逻辑添加方法是个好主意。”
有关存储库的更多信息:
http://symfony.com/doc/current/book/doctrine.html#custom-repository-classes http://www.zalas.eu/doctrine2-and-symfony2