2016-06-06 16 views
0

Ich habe zwei Tabellen:Lehre nicht beitreten zwei columns- Mit Symfony2 und Lehre

Beiträge

id | Titel | Inhalt | Benutzer


Benutzer

id | Name


und ich möchte Benutzername in Posts Sammlung haben. Was mache ich hier falsch? Muss ich eine benutzerdefinierte Abfrage schreiben, um dies zu tun?

Im Moment bekomme ich Benutzer-ID in Posts Sammlung.

class Posts 
{ 

... 

/** 
* @ORM\Column(name="user", type="text", length=250) 
* @ORM\ManyToOne(targetEntity="Users", inversedBy="posts") 
* @ORM\JoinColumn(name="user", referencedColumnName="id") 
*/ 
protected $user; 

... 

Benutzerklasse:

class Users 
{ 
    /** 
    * @var int 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * @ORM\Column(type="text", length=250) 
    */ 
    public $name; 
    /** 
    * @ORM\OneToMany(targetEntity="Posts", mappedBy="user") 
    */ 
    protected $posts; 

    ... 
+0

Haben Sie in der Benutzerklasse oneToMany-Beziehung angegeben? –

+0

getan - Benutzerklasse hinzugefügt –

Antwort

2

Sie einen Fehler in der $ user Beziehung Anmerkung haben, können Sie nicht eine Spalte eine regelmäßige @ORM \ Säule und eine @ORM \ JoinColumn sein, versuchen Sie :

/** 
* @ORM\ManyToOne(targetEntity="Users", inversedBy="posts") 
* @ORM\JoinColumn(name="user", referencedColumnName="id") 
*/ 
protected $user; 

dies wird Ihnen die Entität (referencedColumnName müssen Primärschlüssel sein), dann können Sie $ user-> getName() tun;

+0

Ja, das funktioniert, aber es zieht alle Benutzerspalten aus der Tabelle Benutzer. Gibt es eine Möglichkeit, nur Namen zu ziehen? –

+0

Sie müssten eine benutzerdefinierte Abfrage schreiben. – d23