12 Stimmen

Symfony2 - Doctrine - Entitätsbeziehung zwischen 2 Bundles

Ich kann nicht herausfinden, wie ich eine Entitätsbeziehung zwischen 2 Bundles haben kann.

Das, was ich bisher am ehesten geschafft habe, ist dies:

Benutzer Entität :

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

    //...

Artikel Entität :

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

     //...

Wenn ich Entitäten generiere und die Datenbank aktualisiere, erhalte ich keine Fehler und die Beziehung ist in der DB korrekt eingestellt.

Aber wenn ich versuche, die Artikel abzurufen, erhalte ich Folgendes:

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

Beachten Sie, dass sich die Entität User im AuthBundle und die Entität Article im NewsBundle befindet.

Danke.

8voto

Gedrox Punkte 3522

Sie müssen den Namen der Entitätsklasse angeben, wenn Sie One-to-many- und Many-to-One-Beziehungen definieren. Dennoch geben Sie an Acme\AuthBundle\Entity\User nicht Aief\AuthBundle\Entity\User als targetEntity .

Dasselbe gilt für Artikel und Artikel-Repository.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X