@antonowano
Профессиональный самоучка

Как указать id вручную перед записью?

Переношу данные из другой БД.

$sql = 'SELECT * FROM `user`';
// ...
$user = new User();
$user->setEmail($u['user_email']);
$user->setUsername($u['login']);
// ...
$em->persist($user);
$em->flush();


Как перед записью установить id вручную?
У поля id установлено @ORM\GeneratedValue(strategy="IDENTITY").
  • Вопрос задан
  • 202 просмотра
Решения вопроса 2
@dizzy7
Необходимо добавить перед persist код:
$metadata = $em->getClassMetadata($user);
$metadata->setIdGeneratorType($metadata::GENERATOR_TYPE_NONE);
$metadata->setIdGenerator(new AssignedGenerator());

После сохранения по необходимости генератор восстановить
$metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_IDENTITY);
$metadata->setIdGenerator(new IdentityGenerator(null));
Ответ написан
Комментировать
@antonowano Автор вопроса
Профессиональный самоучка
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы