Рамка имеет однонаправленную ассоциацию oneToOne с Photo.
- Полагаю, теперь каждый кадр связан с фотографией.
- Я также предполагаю, что фотография не хранит информацию о кадре.
- Я хочу знать, какая фотография в рамке (есть фотография в рамке)
- Я не хочу знать, в каком кадре находится фотография
- Я предполагаю, что у меня есть фотография на больше , чем один кадр!
К настоящему времени все работало как ожидалось:
$photo = new Photo();
$another_photo = new Photo();
$frame = new Frame();
$frame->setPhoto($photo);
$em->persist($frame);
$em->flush();
Рамка и две фотографии созданы, и рамка связана с $ photo в БД. Я могу запросить $ frame и получить $ photo с помощью getPhoto ().
Но я хочу обновить фотографию рамки сейчас, и она не работает:
$frame = $em->getRepository('Frame')->findOneById(id_of_frame);
$frame->setPhoto($another_photo);
$em->persist($frame);
$em->flush();
И получите сообщение об ошибке:
Новый объект был обнаружен в связи «Кадр # фотография», который не был настроен для каскадного сохранения операций для объекта. Явно сохраняйте новый объект или настраивайте каскадные сохраняющиеся операции в отношении.
Я могу установить каскад = "persist" внутри отношения Frame OneToOne, и ошибка больше не возникает, но я получаю новую ошибку о непостоянном цвете, которую я использую в фотографии, которую я действительно не устанавливаю и хочу: (
Почему я вообще получаю ошибку? Зачем мне нужно сохранять каскад рамки и фото?
Спасибо!