Как заставить доктрину автоматически заполнять сгенерированные значения для моделирования?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как заставить доктрину автоматически заполнять сгенерированные значения для моделирования?

Сообщение Anonymous »

У меня есть модель, которая позволяет только читать свойство CreatedAt. Это поле генерируется SQL.

Код: Выделить всё

/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue
*/
private $Id;

...
/**
* @ORM\Column(type="datetime", insertable=false, updatable=false)
*/
private $CreatedAt;
Все работает нормально, за исключением одного случая: я не могу получить это поле при создании:

Код: Выделить всё

$newObject = NewClassName();
$this->entityManager->persist($newObject);
$this->entityManager->flush();

$newObject->getId(); \\ = 1234 (some generated integer)
$newObject->getCreatedAt(); \\ = null
Итак, вопрос: как реализовать доктрину для автоматического заполнения этого поля при создании, как это происходит с полем $Id
Я пробовал добавить @GeneratedValue - не работает;
Пока использую detach и получаю его из БД после создания:

Код: Выделить всё

$newObject = NewClassName();
$this->entityManager->persist($newObject);
$this->entityManager->flush();
if ($newObject->getId()) {
$this->entityManager->detach($newObject);
$newObject = $this->entityManager->getRepository(NewClassName::class)->find($newObject->getId());

$newObject->getCreated(); \\ = DateTime object
Но я думаю, есть лучший способ. Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/787 ... s-to-model
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»