У меня есть классы Entity, созданные с помощью Doctrine ORM и ZF2.
Я изменил структуру таблицы, и я хочу обновить класс сущности, поэтому я пытаюсь восстановить класс сущности, но он не работает.
Я использовал следующий код:
vendor / doctrine / doctrine-module / bin / doctrine-module orm: convert-mapping –namespace = "Album \ Entity \" –force -from-database аннотация ./module/Album/src/clear
Я получил ошибку:
[Учение \ ORM \ Mapping \ MappingException]
Свойство «статус» в «Album \ Entity \ TestRun» уже было объявлено, но оно должно быть объявлено только один раз
orm: convert-mapping [–filter = "…"] [–force] [–from-database] [–extend [= "…"]] [–num-spaces [= " … "]] [–namespace [=" … "]] тип-путь
Я хочу перегенерировать класс сущности для конкретной таблицы
Если вы измените структуру своего файла Entity, простое \vendor\bin\doctrine-module orm:schema-tool:update --force
изменит таблицу в соответствии с вашим определением Entity.
Если вы все еще хотите воссоздать таблицу, просто отбросьте таблицу из вашего mysql и запустите команду update. Возможно, у вас есть некоторые файлы кеша, поэтому очистка может быть хорошей идеей.
Вы можете очистить полный кеш следующим образом:
\vendor\bin\doctrine-module orm:clear-cache:query \vendor\bin\doctrine-module orm:clear-cache:result \vendor\bin\doctrine-module orm:clear-cache:metadata
Как упоминалось выше, это может быть плохой практикой, но тем не менее я использую следующие команды для достижения результата, о котором вы спрашиваете:
vendor\bin\doctrine-module orm:convert-mapping --filter='Evaluation' --namespace='MyModule\Entity\\' --force --from-database annotation ./module/MyModule/src/
и другая команда для генерации геттеров и сеттеров:
vendor\bin\doctrine-module orm:generate-entities --filter='Evaluation' ./module/MyModule/src/ --generate-annotations=true