Intereting Posts
Загрузка файла с помощью XMLHttprequest – Отсутствует граница в multipart / form-data Как изменить пароль для отправки сообщения электронной почты в laravel? Как я могу заставить Flash обмениваться файлами cookie браузера / сеансом? Получить идентификатор видео Youtube из html-кода с помощью PHP Кнопка Paypal 'Buy Now' не позволяет мне динамически устанавливать цену Как запустить скрипт оболочки в PHP? Отправка SMTP-почты из PHP Script, размещенного на серверах Hostgator Форма MailChimp API 2.0 и PHP Подключитесь к Facebook-чату, используя PHP? Laravel 5 UnexpectedValueException в ответ на запрос из-за использования данных POINT Загрузка модели OpenCart вне контроллера Рекурсивная функция возвращает значение null Как отключить лакированный кэш из PHP-скрипта? FFMPEG: добавьте изображение фиксированного размера на видео, независимо от ширины и высоты видео (разрешение) PHP SimpleXML не сохраняет разрывы строк в атрибутах XML

Symfony 2 – объект Clone для разных таблиц

Я пытаюсь клонировать объект-объект в другую таблицу в Symfony 2 / Doctrine. есть идеи как это сделать?

После извлечения объекта из базы данных я могу клонировать его следующим образом:

$newobject = clone $oldbject; 

Это дает мне новый объект, который я могу сохранить в качестве новой записи в той же таблице в базе данных. На самом деле я не хочу этого делать. Я хочу сохранить объект так, как он есть в другой таблице в базе данных. Но для этого мне пришлось бы изменить родительскую сущность, верно? Как достичь этого?

Но тогда вы не клонируете сущность. На самом деле вам нужен другой объект. Как выглядят два объекта? Имеют ли они те же поля? Вы могли бы сделать что-то вроде этого:

 $oldEntity = $oldEntity; $newEntity = new NewEntity(); $oldReflection = new \ReflectionObject($oldEntity); $newReflection = new \ReflectionObject($newEntity); foreach ($oldReflection->getProperties() as $property) { if ($newReflection->hasProperty($property->getName())) { $newProperty = $newReflection->getProperty($property->getName()); $newProperty->setAccessible(true); $newProperty->setValue($newEntity, $property->getValue($oldEntity)); } } 

Это не проверено – и может иметь ошибку или два, но это должно позволить копировать все свойства из одного объекта в другой (при условии, что свойства имеют одинаковое имя для обоих объектов).