Я создаю свое первое веб-приложение на Symfony. Теперь я нашел решение, позволяющее сделать мой код более настраиваемым и расширяемым. Но чтобы это решение работало в моем приложении, мне нужна помощь.

Возможно ли в Symfony вставить данные, которые находятся в массиве ключ -> значение, в таблицу в базе данных?

Например, у меня есть массив, который выглядит так: array ('Titel' => 'The Hobbit', 'Music' => 'Add Sheeron')

Теперь мне нужно поместить это в таблицу X базы данных, которая выглядит так: Titel (varchar (255)) Music (varchar (255))

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

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

1
JimmyD 30 Дек 2015 в 22:55

2 ответа

Лучший ответ

Хорошо, допустим, ваш массив называется $music. и выглядит это примерно так:

$music = array('Titel' => 'The Hobbit', 'Music' => 'Add Sheeron');

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

$em = $this->container->get('doctrine.orm.entity_manager');
$music = array('Titel' => 'The Hobbit', 'Music' => 'Add Sheeron');
$entityMusic = new MusicEntity(); //This is your entity
$entityMusic->setTitel($music['title']); //Respective entity methods
$entityMusic->setMusic($music['Music']);
$em->persist($entityMusic);
$em->flush();

Если у вас есть несколько значений, которые вы хотите вставить, вы можете запустить базовый цикл for, чтобы вставить все нужные значения.

Что касается второй части вашего вопроса, вам нужно будет изучить Отношения и сопоставление сущностей. Документация здесь

2
Dipen Shah 30 Дек 2015 в 20:27

Насколько я знаю, для этого не существует никакого метода.

Если вы хотите иметь данные с автоматической привязкой, вам необходимо использовать формы Symfony. Также существуют передовые методы для форм.

А если вы не хотите использовать формы, вам нужно вручную привязать каждое поле.

0
Vlad Kosko 30 Дек 2015 в 20:16