Я использую Symfony CMF SeoBundle. Мой класс сущности использует SeoAwareTrait. Когда я пытаюсь обновить свои свойства SEO (я использую код ниже), я получаю результат со старыми значениями свойств.
$entity = $this->galleryManager->findByLink($link);
$entity->getSeoMetadata()->setTitle($metaTitle);
$entity->getSeoMetadata()->setMetaDescription($metaDescription);
$entity->getSeoMetadata()->setMetaKeywords($metaKeywords);
$em->persist($entity);
$em->flush();
Когда я пытаюсь клонировать мои seo-свойства, Doctrine успешно сохраняет мои новые значения:
$entity = $this->galleryManager->findByLink($link);
$entity->getSeoMetadata()->setTitle($metaTitle);
$entity->getSeoMetadata()->setMetaDescription($metaDescription);
$entity->getSeoMetadata()->setMetaKeywords($metaKeywords);
$entity->setSeoMetadata(clone $entity->getSeoMetadata());
$em->persist($entity);
$em->flush();
Почему во втором случае доктрина обновляет результат, а в первом нет? Правильно ли я понимаю, что доктрина не воспринимает изменения свойств, которые относятся к другим объектам?
Возможно Вы не указали правила каскадирования. Например, это можно сделать в аннотации к полю модели с помощью параметра cascade={"persist", "remove", ...}, который обеспечивает каскадирование соответствующих операций.
Более подробно можно посмотреть здесь https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/working-with-associations.html#transitive-persistence-cascade-operations
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть две таблицы 'orders' (id, bank_name, order_amount) и 'balances' (bank_name, total_balance)С помощью формы данные добавляются в таблицу 'orders' и в тоже время обновляется...
при миграции базы постоянно выдает вот такую ошибку, не понимаю что нужно исправить