Вопрос

У меня есть несколько простых классов, все расширяющие Doctrine_Record .

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

Я использую DQL, обязывает ли это меня вручную определять связь между 2 таблицами?Должен ли я определить этот класс отношений или мне лучше обновить schema.yml и каким-то образом повторно сгенерировать код класса?

Никакие соединения DQL невозможны без такой явной подготовки отношений, верно?

Это было полезно?

Решение

Вы можете добавить отношение к вашему файлу .yaml, а затем повторно сгенерировать ваши классы таким образом. Вот Документация Doctrine об отношениях в файлах Yaml.

Вам нужно будет повторно сгенерировать вашу базу данных, чтобы Doctrine могла добавить правильные ограничения внешнего ключа на основе новых отношений.Это относительно просто с помощью команда доктрины командной строки и предполагает, что вы не заботитесь о потере своих данных.Если вы действительно беспокоитесь о потере данных, вам следует использовать Doctrine для управления вашими миграциями за вас, но это выходит за рамки вашего вопроса.Вы можете найти больше информации о миграциях, просмотрев ответ Франкеля на этот вопрос.

Другие советы

Я бы восстановил код класса.Я считаю всегда хорошей практикой использовать либо schema, либо db в качестве авторитетного источника, а затем просто восстанавливать и / или использовать миграции.Таким образом, легче поддерживать порядок.То же самое относится как к Движению, так и к Доктрине.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top