Средство получения Symfony 4 не создано из существующей базы данных - PullRequest
0 голосов
/ 10 мая 2018

Я знаю, что для создания сущности из существующей базы данных в Symfony 4, просто выполните эту команду:

> php bin/console doctrine:generate:entities

, но эта команда не генерирует установщик-получатель, просто генерирует переменную из столбца.

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

Может быть, я пропустил прочитать документацию, как сгенерировать установщик получателя сущностей из существующей базы данных, используя доктрину Symfony 4?

Ответы [ 3 ]

0 голосов
/ 10 мая 2018

Чтобы сгенерировать классы сущностей из существующей базы данных, вам нужно попросить Doctrine проанализировать базу данных и сгенерировать соответствующие файлы метаданных.Файлы метаданных описывают класс сущности, который нужно сгенерировать на основе полей таблицы.

> php bin/console doctrine:mapping:import App\\Entity annotation --path=src/Entity

Эта команда сгенерирует новые классы PHP с метаданными аннотации в src / Entity. Для генерации отсутствующих методов получения / установки (или для создания классов).если необходимо), запустите:

> php bin/console make:entity --regenerate App

Также проверьте Официальная документация

0 голосов
/ 10 мая 2018

Для этого из существующей базы данных вы можете использовать обратный инжиниринг. Выполните следующие действия:

  1. настроить вашу базу данных в файле .env

2,1. создайте сущность из вашей сконфигурированной базы данных с помощью:

php bin/console doctrine:mapping:convert --from-database annotation ./src/Entity

2,2. если вы хотите создать сущность для одной конкретной таблицы:

php bin/console doctrine:mapping:convert --from-database --filter="Tablename" annotation ./src/Entity
  1. если вы используете vim, вы можете добавить геттеры и сеттеры, установив плагин php-getter-setter.vim и набрав в каждой сущности:

    :% InsertBothGetterSetter

  2. вы должны добавить вручную в каждой сущности:

    namespace App \ Entity;

0 голосов
/ 10 мая 2018

DOC говорит : "Если вы предпочитаете добавлять новые свойства вручную, команда make: entity может сгенерировать для вас методы получения и установки:

php bin/console make:entity --regenerate

Если вы вносите некоторые изменения и хотите регенерировать все методы получения / установки, также передайте --overwrite. "

Также обратите внимание, что в Symfony 3 (я не знаю v4), doctrine:generate:entities сделалне работает с protected свойствами

...