Pommbundle Пользовательский запрос Вставить или обновить - Symfony2
Я хотел бы создать пользовательскую вставку или обновление с помощью pommbundle, но в документации у меня есть только для запроса выбора.
Можно привести простой пример с возможностью иметь последний идентификатор вставки? с... currval ou lastval?
1 ответ
Существует несколько способов вставки данных в базу данных с использованием PommBundle.
Если вы не используете Диспетчер моделей и хотите выполнить пользовательскую вставку:
// in the controller
$this->get('pomm')
->getDefaultSession()
->getQueryManager()
->query('INSERT INTO … VALUES ($*::text, $*::int4…)', [$param1, $param2]);
Этот метод утомителен, потому что вы должны указать все поля вручную, он может сломаться, если схема изменится, но вы можете указать сложный запрос вставки, используя акробатику SQL.
Если цель состоит в том, чтобы просто сохранить модель, менеджер моделей облегчает вставку данных с использованием сущностей:
use Path\To\Model\MyDb\MySchema\MyEntityModel;
// …
$entity = $this->get('pomm')
->getDefaultSession()
->getModel(MyEntityModel::class)
->createAndSave(['field1' => $param1, …]);
Возвращаемый объект - это изображение вставленных данных со значениями по умолчанию для базы данных (большую часть времени автоматически генерируется первичный ключ).
Вот документация об этом.