Doctrine ORM: можно ли использовать автоматически сгенерированный идентификатор в другом столбце той же команды?

У меня есть таблица USER с полем id, настроенным следующим образом:

* @ORM\Id
* @ORM\Column(type = "integer")
* @ORM\GeneratedValue(strategy = "AUTO")

Я бы хотел, чтобы столбец firstName по умолчанию был «user12», если id = 12, или «user1547», если id = 1547 и т. д.

Я знаю, что могу получить тот же результат другим способом (например, в моем "Entity" с помощью метода getFirstname или с помощью второй команды, которая обновляет значение firstName и т. д.), Но это не моя точка зрения: мне нужно это значение в базе данных и это должно быть сделано той же командой, что и та, которая «вставляет» моего нового пользователя.

Как вы думаете, это возможно ?

Я думаю, это возможно с currval на PostgreSql с помощью такой команды, как:

INSERT INTO user (id, firstname, lastname) values (nextval('user_id_seq'), ('user' || currval('tmp_play_id_seq')::text), 'Smith'); 

Но как насчет Доктрины? ?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
83
1

Ответы 1

Если вы используете автоматически сгенерированное значение, вы не знаете новый идентификатор до его сохранения, это означает, что вы не можете установить свое имя на firstIDVALUE.

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

Итак, есть несколько решений, которые я вижу сейчас:

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