В PHPCR (NoSQL) есть что-то вроде Uuid (это нечто иное, чем Id в таблице, уникальное только для отдельной таблицы) - идентификатор, который уникален для всех документов (объектов) во всей базе данных. Это очень помогает, когда, например, с использованием форм, потому что я могу использовать UUID, не зная точный класс сущности, и все еще быть в состоянии получить доступ непосредственно связанную запись просто:Уникальный идентификатор для всех сущностей из всех репозиториев
$objectManager->find(null, $uuid);
Я хотел бы иметь подобное решение с РСУБД в Doctrine ORM, т. е. найти запись, зная только ее уникальный идентификатор (Uuid). Кто-нибудь из вас знает о таком решении?
Из документации PHPCR-ODM:
Каждый документ может иметь уникальный идентификатор для нее ссылаться. Хотя uuid также отображается как свойство строки только для чтения, соответствующее сопоставление для него отображает его как UUID.
UPDATE:
Вот источники Доктрина в:
Из общей доктрины общего Lib https://github.com/doctrine/common/blob/master/lib/Doctrine/Common/Persistence/ObjectManager.php#L42
public function find($className, $id);
От ОРМ https://github.com/doctrine/doctrine2/blob/master/lib/Doctrine/ORM/EntityManager.php#L380
public function find($entityName, $id, $lockMode = null, $lockVersion = null)
Но я не придерживаюсь метода find().
Невозможно запросить каждую таблицу. На самом деле, я уже придумал решение, но я надеялся, что есть такой комплект (например, такие, как пучки, улучшающие способности Doctrine), которые уже кто-то написал, иначе мне пришлось бы написать его самостоятельно. Мое решение довольно просто: Uuid для ORM может содержать информацию обо всех, Id и класса, и может быть одной строкой, например. хэшируются. Что касается других моментов, я обновил свое оригинальное сообщение. – forsberg