Mục tiêu của tôi là truy cập vào nhiều cơ sở dữ liệu trong một Gói dự án.Symfony2: Cách tạo đối tượng từ nhiều cơ sở dữ liệu hiện có trong SAME Bundle?
tôi đọc qua các tài liệu symfony2 và quản lý để làm các việc sau:
- configure multiple connections for different Bundles
generate Entities from ONE Existing Database sử dụng:
php app/console doctrine:mapping:import AcmeBlogBundle annotation php app/console doctrine:generate:entities AcmeBlogBundle
Nhưng tôi không thể tìm cách đến tạo đối tượng từ nhiều cơ sở dữ liệu hiện có trong SAME Bundle để tôi có thể truy cập nhiều cơ sở dữ liệu trong một gói. Bất kỳ ý tưởng?
P.S. Tôi không quen thuộc với Doctrine. Vì vậy, thực sự nếu có nhiều cách để làm Symfony2 mà không có Doctrine, tôi cũng sẽ đánh giá cao.
CẬP NHẬT # 1:
Cerad's answer đến khá gần. Tuy nhiên, một vấn đề vẫn chưa được giải quyết. Như tôi có một số tên bảng giống nhau trong cơ sở dữ liệu khác nhau, nó tốt hơn để tổ chức chúng thành các thư mục separte bên trong Thư mục Entity. Tôi đã kiểm tra các bài đăng tương tự như this và that. Nhưng các giải pháp không làm việc cho tôi. Giải pháp của họ đơn giản đặt tất cả các thực thể trực tiếp vào Entity Folder, bỏ qua tùy chọn dir được chỉ định trong config.yml. Có cách giải quyết nào cho vấn đề này không?
cảm ơn câu trả lời. Vẫn còn một vấn đề chưa được giải quyết. Như tôi có một số tên bảng giống nhau trong cơ sở dữ liệu khác nhau. Vì vậy, nó tốt hơn để tổ chức chúng thành các thư mục separte bên trong Thư mục Entity. Tôi đã kiểm tra http://stackoverflow.com/questions/13765785/doctrine-generate-entities-namespace-issue nhưng có vẻ như nó không thể không được thực hiện đúng? Có cách giải quyết cho vấn đề này – Capitaine
Công việc trực tiếp duy nhất xung quanh là thêm tên cơ sở dữ liệu vào tên bảng. Nhưng làm như vậy có nghĩa là các lệnh học thuyết khác nhau sẽ ngừng hoạt động và nó có nghĩa là các tên cơ sở dữ liệu mã hóa cứng. Tùy thuộc vào nhu cầu của bạn, có thể bạn có thể sử dụng chế độ xem sql để thay đổi về cơ bản tên bảng. Tôi nghĩ bạn sẽ tốt hơn khi chỉ sử dụng nhiều gói. – Cerad
Bạn nên tạo một cài đặt symfony mới, tạo một gói kéo xuống các bảng của bạn và sau đó chỉnh sửa các không gian tên và sao chép các tệp vào trong gói hiện có của bạn. Đó là một nỗi đau, nhưng nó dễ dàng hơn là cố gắng để hack theo cách của bạn xung quanh trong máy phát điện lập bản đồ. Bạn chắc chắn có các không gian tên theo thực thể (tôi có nhiều cấp độ trong các dự án của tôi). 'Bundle/Entity/ThingsThatMakeMeMad/SpilledMilk.php' vv –