Как я могу выполнять сложные запросы ассоциаций сущностей в доктрине 2? (виртуальный объект)

Допустим, у меня есть приложение для блога.
Автор может добавить несколько изображений в сообщение, указав ссылку на URL-адрес существующего изображения в Интернете, или загрузив новое изображение.

Я хочу иметь возможность отслеживать от изображения (загруженного или по URL) ко всем сообщениям, в которых используется это изображение, и от конкретного сообщения ко всем изображениям в этом сообщении (например, чтобы я мог удалить изображения которые являются незаконными, и / или приостановить публикацию, которая их использует, до тех пор, пока автор не исправит сообщение).

Однако я использую разные сущности для загруженного изображения и изображения URL - загруженное изображение содержит больше данных об изображении, чем изображение URL.

Это приводит к более сложному коду, так как при каждом сохранении отредактированного сообщения мне нужно проверять, какой тип является конкретным изображением (из всех изображений в сообщении, которые мне нужно просмотреть), а затем создавать или обновлять его запись и назначьте полю отношения в сущности сообщения.

Итак ... предполагая, что у меня есть объекты UploadedImage и UrlImage , я подумал о наличии метода setImages в сообщении ], который проверяет каждое полученное изображение, загружено ли оно или URL, а затем вызывает либо setUploadedImages , либо setUrlImages .

Однако мне понадобится какой-то виртуальный репозиторий изображений , чтобы загружать изображения таким же образом.

Это звучит немного сложно, и я подумал:

  1. Как я могу создать виртуальную доктрину (с ее репозиторием и всем остальным)?
  2. Есть ли для нее лучший дизайн?
7
задан Doron 10 October 2011 в 17:21
поделиться