Symfony2 - Doctrine - 2个bundle之间的实体关系

LBr*_*dge 12 php entity doctrine symfony

我无法弄清楚我如何在2个捆绑之间建立实体关系.

到目前为止,我最接近成功的是:

用户实体:

<?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;


    //...
Run Code Online (Sandbox Code Playgroud)

文章实体:

<?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;

     //...
Run Code Online (Sandbox Code Playgroud)

生成实体并更新数据库时,我没有错误,并且在DB中正确设置了关系.

但是当我尝试获取文章时,我得到了这个:

Class Acme\AuthBundle\Entity\Article does not exist
500 Internal Server Error - ReflectionException 
Run Code Online (Sandbox Code Playgroud)

请注意,User实体位于NewsBundle中的AuthBundle和Article实体中.

谢谢.

Ged*_*rox 8

在定义一对多,多对一关系时,需要指定实体类的名称.不过您指定Acme\AuthBundle\Entity\UserAief\AuthBundle\Entity\User作为targetEntity.

文章和文章存储库相同.