È possibile risolvere un'entità di destinazione su più gestori di entità?Risolvi entità di destinazione con più gestori di entità
ho una persona di classe (in un fascio riutilizzabile):
/**
*
* @ORM\Entity
* @ORM\Table(name="my_vendor_person")
*/
class Person
{
/**
* Unique Id
*
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* First Name
*
* @var string $name
*
* @ORM\Column(name="first_name", type="string", length=32)
*/
protected $firstName;
// etc...
e un utente di classe (nella mia applicazione principale):
/**
* @ORM\Entity
*
* @ORM\Table(name="my_financial_user")
*
*/
class User extends BaseUser
{
/**
* @ORM\OneToOne(targetEntity="My\FinancialBundle\Model\PersonInterface")
* @var PersonInterface
*/
protected $person;
Fondamentalmente voglio paio all'utente a una persona dal pacchetto riutilizzabile.
avevo impostato opzione entità di destinazione determinazione nella configurazione di dottrina che ho pensato che mi permette di fare questo:
doctrine:
orm:
auto_generate_proxy_classes: "%kernel.debug%"
default_entity_manager: default
resolve_target_entities:
My\FinanceBundle\Model\PersonInterface: My\VendorBundle\Entity\Person
entity_managers:
default:
naming_strategy: doctrine.orm.naming_strategy.underscore
connection: default
mappings:
MyFinanceBundle: ~
second:
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: false
connection: second
mappings:
MyVendorBundle: ~
MyVendorUserBundle: ~
Inoltre, la classe utente nel pacchetto principale, si estende un utente di base nel fascio fornitore. La classe utente, ovviamente, viene mantenuta, nelle applicazioni principali db.
Con questa configurazione mi dà un errore.
[Doctrine\Common\Persistence\Mapping\MappingException]
The class 'My\VendorBundle\Entity\Person' was not found in the chain configured namespaces My\FinanceBundle\Entity, FOS\UserBundle\Model
Qualcuno sa come risolvere questo?
Vedere queste domande correlate: http://stackoverflow.com/questions/14403863/entities-associations-across-different-managers e http://stackoverflow.com/questions/9330018/issues-in-entities-from- diversi-bundle-using-different-entity-managers – takeit
No. I gestori di entità non parlano tra loro. Dovrai trovare un modo per includere tutte le entità necessarie in un singolo gestore di entità. – Cerad
che è sfortunato. Penso che questo sia un caso legittimo per gli utenti, speriamo che il supporto ci sia in futuro .. grazie sia per il tuo commento.per ora quello che farò è assegnare dinamicamente la persona all'utente nei controller dove è necessario ($ user = $ this-> getUser(); $ user-> person = $ person) – apfz