Symfony, Doctrine — создание столбца базы данных из интерфейса

#symfony #orm #doctrine #entity

#symfony #orm #доктрина #сущность

Вопрос:

Я довольно новичок в веб-разработке и symfony. Прямо сейчас у меня есть два отдельных проекта (интерфейс / серверная часть). Интерфейс с angular / ionic и серверная часть с symfony / doctrine. У меня есть база данных с объектом «продукт». И для этого продукта я создал столбец ‘name’. Мне удалось сделать это, добавив соответствующие строки в разные файлы в серверной части. Например: src/Entity/product.php

Что мне нравится делать, так это то, что в подключенном интерфейсном коде у меня есть текстовое поле и кнопка отправки. Вы вводите, например, «производитель» в текстовое поле, и он автоматически добавляет столбец к объекту product с этим именем. (минимальная / максимальная длина и, если требуется, пока не имеет значения, я думаю).

Я много читал о symfony / doctrine, но, похоже, это невозможно, как я себе это представлял.

Извините, что не публикую никаких попыток кода, но я даже не знаю, с чего начать с такой задачей. Я думаю, что проблема более структурная / концептуальная. Возможно, мне нужно создать столбец коллекций в моей сущности и заполнить эту коллекцию всеми новыми столбцами, которые я хочу, в виде строки или чего-то в этом роде.

Я благодарен за любые советы. И еще раз извините за мой, вероятно, ужасный пост.

С уважением

Комментарии:

1. Изменение вашей схемы на лету нелегко и потенциально рискованно. Вы можете использовать базу данных документов или использовать поле json в mysql для хранения динамически изменяющихся данных. Поле JSON сложнее запрашивать, поэтому вы должны иметь это в виду.

2. таким образом, вы могли бы ввести поле в объект. Затем запустите php bin / console doctrine:миграции: diff; php bin / console doctrine:миграции: миграция — без взаимодействия;

3. @RobertSaylor У вас есть ссылка, где я могу прочитать о части внедрения? Я все еще не уверен во многих вещах. Например, должен ли я каким-то образом сначала передать имя и свойства столбца на серверную часть? И серверная часть позволяет doctrine обрабатывать все остальное или что-то в этом роде?