Доктрина ОРМ: модели не уважающие дела - PullRequest
2 голосов
/ 01 октября 2009

У меня есть таблица базы данных mysql под названием UserDegree, когда я пытаюсь импортировать обратно в PHP с помощью Doctrine, она генерирует имя модели Userdegree, есть ли способ решить эту проблему?

Я действительно не могу найти хорошую документацию для доктрины.

спасибо!

Ответы [ 2 ]

2 голосов
/ 01 октября 2009

Я не уверен в вашей конкретной проблеме, но для части "хорошей документации доктрины" вы пробовали руководство? См. Doctrine ORM для PHP - я думаю, что это на самом деле довольно хорошо, особенно по сравнению с тем, что вы получаете с некоторыми другими проектами, которые не имеют много документации или полностью устарели.

О вашей проблеме (как я говорил ранее, не уверен): я полагаю, Doctrine берет каждое «слово» из имени таблицы в БД и преобразует его в «имя» для PHP. Довольно часто «слова» в именах таблиц разделяются подчеркиванием «_», и все они находятся либо в нижнем, либо в любом регистре.

Полагаю, если вы назовете свою таблицу "user_degree" вместо "UserDegree", то Doctrine должна обнаружить, что она состоит из двух "слов", и создать класс PHP с именем "UserDegree" - на самом деле я тестировал таблицу с именем post_has_tag, и она генерирует класс с именем PostHasTag.

1 голос
/ 25 октября 2009

Паскаль Мартин прав. Таблица должна быть названа как user_degree, в этом случае Doctrine сгенерирует класс UserDegree.

Я также недавно выяснил, что можно сохранить все идентификаторы базы данных как under_scores, имея при этом Doctrine для генерации кода camelCase. Это происходит автоматически для имен таблиц, как сказано выше. Что касается имен полей, они могут быть сопоставлены с camelCase с помощью функции псевдонима файла схемы YAML (name: user_id as userId). Кроме того, вы можете автоматизировать псевдонимы полей, разработав пользовательское задание для Doctrine.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...