Có thể giải quyết một thực thể mục tiêu trên nhiều người quản lý thực thể không?Giải quyết thực thể mục tiêu với nhiều người quản lý thực thể
Tôi có một người lớp (trong một gói tái sử dụng):
/**
*
* @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...
Và một người sử dụng lớp (trong ứng dụng chính của tôi):
/**
* @ORM\Entity
*
* @ORM\Table(name="my_financial_user")
*
*/
class User extends BaseUser
{
/**
* @ORM\OneToOne(targetEntity="My\FinancialBundle\Model\PersonInterface")
* @var PersonInterface
*/
protected $person;
Về cơ bản tôi muốn vài người sử dụng cho một người từ nhóm có thể sử dụng lại.
tôi đã thiết lập tùy chọn đơn vị quyết tâm mục tiêu trong cấu hình học thuyết của mà tôi nghĩ rằng nó cho phép tôi làm điều này:
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: ~
Ngoài ra, các lớp học sử dụng trong gói chính, mở rộng một cơ sở người dùng trong gói nhà cung cấp. Lớp người dùng tất nhiên được duy trì, trong db ứng dụng chính.
Với cấu hình này, nó cho tôi một lỗi.
[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
Có ai biết cách giải quyết vấn đề này không?
Xem các câu hỏi liên quan sau: http://stackoverflow.com/questions/14403863/entities-associations-across-different-managers và http://stackoverflow.com/questions/9330018/issues-in-entities-from- các gói khác nhau-sử dụng-khác-thực thể-người quản lý – takeit
Không. Quản lý thực thể không nói chuyện với nhau. Bạn sẽ cần phải tìm cách để bao gồm tất cả các thực thể cần thiết trong một người quản lý thực thể duy nhất. – Cerad
không may. Tôi nghĩ rằng đây là trường hợp người dùng hợp pháp, hy vọng hỗ trợ sẽ có trong tương lai .. cảm ơn cả cho bình luận của bạn.bây giờ những gì tôi sẽ làm là tự động gán người đó cho người dùng trong bộ điều khiển nơi cần thiết ($ user = $ this-> getUser(); $ user-> person = $ person) – apfz