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, …]);

Возвращаемый объект - это изображение вставленных данных со значениями по умолчанию для базы данных (большую часть времени автоматически генерируется первичный ключ).

Вот документация об этом.

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