У меня есть несколько EntityManager, объявленных так:
doctrine:
dbal:
default_connection: default
connections:
default:
driver: %db_default_driver%
host: %db_default_host%
port: %db_default_port%
dbname: %db_default_name%
user: %db_default_user%
password: %db_default_password%
charset: UTF8
sync:
driver: %db_solarsync_driver%
host: %db_solarsync_host%
port: %db_solarsync_port%
dbname: %db_solarsync_name%
user: %db_solarsync_user%
password: %db_solarsync_password%
charset: UTF8
master:
driver: %db_master_driver%
host: %db_master_host%
port: %db_master_port%
dbname: %db_master_name%
user: %db_master_user%
password: %db_master_password%
charset: UTF8
orm:
auto_generate_proxy_classes: %kernel.debug%
default_entity_manager: default
entity_managers:
default:
connection: default
mappings:
FOSUserBundle: ~
SolarWebUserBundle: ~
SolarWebSolarSalesBundle: ~
SolarWebSolarAdminBundle: ~
sync:
connection: sync
mappings:
FOSUserBundle: ~
SolarWebUserBundle: ~
SolarWebSolarSalesBundle: ~
SolarWebSolarAdminBundle: ~
SolarWebSolarSyncBundle: ~
master:
connection: master
mappings:
FOSUserBundle: ~
SolarWebUserBundle: ~
SolarWebSolarSalesBundle: ~
SolarWebSolarAdminBundle: ~
Каждое соединение представляет одну базу данных.
И объект "Devis".Существует два отношения OneToOne с DevisDonnesTranches и DevisOptions.Так объявлено в Devis.php
/**
* @ORM\OneToOne(targetEntity="SolarWeb\SolarSalesBundle\Entity\DevisDonneesTranches")
* @ORM\JoinColumn(name="donnees_tranches_id", referencedColumnName="id", onDelete="CASCADE")
*/
protected $donnees_tranches;
/**
* @ORM\OneToOne(targetEntity="SolarWeb\SolarSalesBundle\Entity\DevisOptions")
* @ORM\JoinColumn(name="options_id", referencedColumnName="id", onDelete="CASCADE")
*/
protected $options;
. Для целей репликации мне нужно извлечь Devis и его отношения из «sync» и сохранить их в «master».Но когда я это делаю, я получаю
Notice: Undefined index: 000000005846b3b000000000cfe7c32f in /srv/http/vendor/doctrine/lib/Doctrine/ORM/UnitOfWork.php line 2219
Я думаю, что это из-за отношений OneToOne.Потому что когда я $ devis-> setDevisOptions (null) и $ devis-> setDevisDonneesTranches (null), Devis сохраняется в 'master'.Но без отношениясохранить сущность от менеджера сущностей к другому.Есть ли какой-нибудь совет или даже хорошая практика для этого?
Спасибо.