1

假设我们有几个表: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()。

我想要创建额外实体的主要内容仅具有多个表的关系并且仅是单向的。我需要这个来创建实体而不触及另一个实体。

4

1 回答 1

0

您应该查看实体存储库。这些提供了一些基本的功能查询,但您可以使用自己的自定义查询(例如:getItemIDByItemID)来扩展它们。它被称为存储库模式。实体只是数据库的对象表示。

Symfony2 手册:

“为您的实体创建自定义存储库类并在其中添加带有查询逻辑的方法是个好主意。”

有关存储库的更多信息:

http://symfony.com/doc/current/book/doctrine.html#custom-repository-classes http://www.zalas.eu/doctrine2-and-symfony2

于 2013-02-06T12:50:35.157 回答