Tôi không thể tìm ra cách tôi có thể có mối quan hệ thực thể giữa 2 gói.Symfony2 - Doctrine - Mối quan hệ thực thể giữa 2 nhóm
Gần nhất tôi đã từng đến thành công cho đến nay là thế này:
tài Entity:
<?php
namespace Acme\AuthBundle\Entity;
use FOS\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Doctrine\Common\Collections\ArrayCollection;
/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\generatedValue(strategy="AUTO")
*/
protected $id;
//...
/**
* @ORM\OneToMany(targetEntity="Acme\NewsBundle\Entity\Article", mappedBy="author")
*/
protected $articles;
//...
Điều Entity:
<?php
namespace Acme\NewsBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="Acme\NewsBundle\Entity\ArticleRepository")
* @ORM\Table(name="articles")
*/
class Article
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
//...
/**
* @ORM\ManyToOne(targetEntity="Acme\AuthBundle\Entity\User", inversedBy="articles")
*/
protected $author;
//...
Khi tạo các đối tượng và cập nhật cơ sở dữ liệu, tôi không nhận được lỗi và mối quan hệ được đặt chính xác trong DB.
Nhưng khi tôi cố gắng để lấy các bài viết tôi có được điều này:
Class Acme\AuthBundle\Entity\Article does not exist
500 Internal Server Error - ReflectionException
Lưu ý rằng các tổ chức tài là trong AuthBundle và Điều thực thể trong NewsBundle.
Cảm ơn.
Xin lỗi, lỗi đánh máy, tôi thực sự đã thay đổi Aief thành Acme chỉ dành cho bài đăng (tôi sẽ chỉnh sửa bài đăng đó). Vì vậy, đó không phải là nó. – LBridge
Vấn đề là nó đang tìm kiếm Thực thể Điều trong AuthBundle khi nó cần tìm trong NewsBundle. Tôi không hiểu tại sao. – LBridge
Bạn có sử dụng bất kỳ bộ nhớ cache nào cho Doctrine hiện tại không? Hãy thử làm sạch nó. Loại bỏ các lớp proxy được tạo ra là tốt, những người có thể chứa tên lớp sai là tốt. – Gedrox