Вот что я делаю:
$entity = new Meta();
$obj = new stdClass();
$obj->foo = 15;
$obj->bar = 0;
$obj->bor = true;
$entity->setObject($obj);
$em->persist($entity);
$em->flush();
$entity = $entityRepository->find(1);
var_dump($entity);
возвращается:
object(Jo\Model\Entity)[130]
protected 'id' => int 1
protected 'user' => null
protected 'object' =>
object(stdClass)[105]
public 'foo' => int 15
public 'bar' => int 0
public 'bor' => boolean true
$entity->getObject()->bar = 9;
var_dump($entity);
возвращается:
object(Jo\Model\Entity)[130]
protected 'id' => int 1
protected 'user' => null
protected 'object' =>
object(stdClass)[105]
public 'foo' => int 15
public 'bar' => int 9
public 'bor' => boolean true
!
$em->persist($entity);
$em->flush();
Но после сброса сущность не обновляется в базе данных.
Возможно, это потому, что я устанавливаю новый объект из метода getObject (), и он имеет какое-то отношение к ссылкам или около того, но я не понимаю, почему второй var_dump () показывает правильные значения в объект.
Получатель довольно прост и состоит только в возврате частной собственности.
Любые идеи, я хотел бы понять это поведение.