Tôi có 2 thực thể: Quốc gia (id, tên) và Ánh xạ (id, đối tượng, internalId, externalId). Quốc gia và Ánh xạ không được kết nối với các liên kết (vì Ánh xạ có các hàng không chỉ cho quốc gia). Tôi cần phải nhận được id bên ngoài cho các nước sử dụng điều kiện sau đây:Sử dụng EntityManager bên trong các thực thể Doctrine 2.0
country.id = mapping.internalId
mapping.object = 'country'
Vì vậy, tôi có kế hoạch để thêm chức năng getExternalId() trong Nước
function getExternalId() {
$em = Registry::getEntityManager();
$mapping = $em->getRepository('Mapping')->findOneBy(array(
'object' => 'country',
'internalId' => $this->getId()
));
return !empty($mapping) ? $mapping->getExternalId() : false;
}
Câu hỏi:
- Có thực hành tốt để sử dụng EntityManager bên trong thực thể? Nếu không, vui lòng giải thích cách nhận id bên ngoài trong trường hợp của tôi?
- Có thể liên kết Quốc gia và Ánh xạ bằng tệp yaml?
Cảm ơn bạn trước!
Tôi đang tìm kiếm các hướng dẫn tốt về triển khai dịch vụ cho học thuyết. Có ai biết hướng dẫn tốt. – user257980
Đối tượng dịch vụ trong trường hợp này có cần phải là nội bộ của thực thể hoặc bạn có thể sử dụng nó với pháp nhân không? ví dụ. $ service = new Quốc gia \ ServiceObject; $ ExtId = $ service-> getExternalId ($ country); – calumbrodie
triển khai dịch vụ cho học thuyết: http://symfony.com/doc/current/book/service_container.html – bleuscyther