【发布时间】:2016-12-25 09:26:12
【问题描述】:
在 PHPCR (NoSQL) 中有类似 Uuid 的东西(它与表中的 Id 不同,仅对单个表唯一) - 整个数据库中所有文档(实体)唯一的 Id。例如,这很有帮助。使用表单,因为我可以在不知道实体的确切类的情况下使用 Uuid,并且仍然能够通过以下方式直接访问相关记录:
$objectManager->find(null, $uuid);
我希望在 Doctrine ORM 中使用与 RDBMS 类似的解决方案,即在仅知道其唯一 ID (Uuid) 时查找记录。你们中有人知道这样的解决方案吗?
来自 PHPCR-ODM 文档:
每个文档都可以有一个唯一的标识符来引用它。虽然 uuid 也作为只读字符串属性公开,但它的正确映射是将其映射为 UUID。
更新:
这里是教义的来源:
来自通用 Doctrine 公共库https://github.com/doctrine/common/blob/master/lib/Doctrine/Common/Persistence/ObjectManager.php#L42
public function find($className, $id);
来自 ORM https://github.com/doctrine/doctrine2/blob/master/lib/Doctrine/ORM/EntityManager.php#L380
public function find($entityName, $id, $lockMode = null, $lockVersion = null)
但我不坚持使用 find() 方法。
【问题讨论】:
标签: php doctrine-orm symfony doctrine-odm