Сеттер геттера Symfony 4 не сгенерирован из существующей базы данных

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

> php bin/console doctrine:generate:entities

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

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

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

Возможный дубликат: stackoverflow.com/questions/21317022/…

Aurelien 10.05.2018 21:36
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
2
1
8 528
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

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

php bin/console make:entity --regenerate

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

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

Ответ принят как подходящий

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

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

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

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

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

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

  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. вы должны добавить вручную в каждую сущность:

    пространство имен App \ Entity;

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