Подтвердить что ты не робот

Symfony2 - Доктрина - Связь между двумя связями

Я не могу понять, как я могу иметь отношение сущности между двумя пакетами.

Ближайшим, которого я добился до сих пор, является следующее:

Пользовательский объект:

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


    //...

Объект статьи:

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

     //...

При создании сущностей и обновлении базы данных я не получаю ошибок, и связь корректно устанавливается в БД.

Но когда я пытаюсь получить статьи, я получаю следующее:

Class Acme\AuthBundle\Entity\Article does not exist
500 Internal Server Error - ReflectionException 

Обратите внимание, что объект User находится в объекте AuthBundle и Article в NewsBundle.

Спасибо.

4b9b3361

Ответ 1

При определении отношений "один ко многим", "много-к-одному" вам нужно указать имя класса сущности. Тем не менее вы указываете Acme\AuthBundle\Entity\User not Aief\AuthBundle\Entity\User как targetEntity.

То же самое для репозитория статей и статей.