Пытаюсь 2 дня написать аннотации для сущностей, и не могу понять, как это сделать, если это вообще возможно.
Имею в Postgresql следующие таблицы:
Language -> id, iso_code
I18n_Entity -> id
I18n_String -> id, i18n_entity_id, language_id, text
Product -> id, i18n_entity_id(unique)
Category -> id, i18n_entity_id(unique)
Надо создать 2 функции
getProductByName(Language $language, $name);
Если бы я использовал чистый SQL то запрос был бы такой
SELECT p.*, i18s.text
FROM product as p
INNER JOIN I18n_String AS i18s ON i18s.i18n_entity_id = p.i18n_entity_id AND i18s.language_id = :language_id
WHERE i18s.text = :name
getCategoryByName(Language $language, $name);SELECT c.*, i18s.text
FROM category as c
INNER JOIN I18n_String AS i18s ON i18s.i18n_entity_id = c.i18n_entity_id AND i18s.language_id = :language_id
WHERE i18s.text = :name
Запрос идёт так:
product -> i18n_entity -> i18n_string <- language .
Или сокращённо сразу
product -> i18n_string <- language.
Используется интернационализация на сайте, и вся соль в том, что слова хранятся в отдельной таблице, c которой связаны несколько таблиц не только product и category.
Собственно возможно ли описать такие связи с помощью Doctrine 2, и если да, то как?