2016-05-01 10 views
0

Ich lerne Symfony 3 mit Lehre 2.Symfony & Doctrine2: Wert von `mappedBy` Annotation?

Wenn ich OneToMany Beziehung in Lehre Einheit haben, was genau ich in mappedBy Annotation setzen müssen?

  • Ist es die Tabellenname der aktuellen Entität?
  • Oder ist es die Objektverknüpfung?
  • Oder ist es der eigentliche Klassenname?

dieses einfache Beispiel Stellen Sie sich vor:

<?php 
namespace AppBundle\Entity; 

/** 
* @ORM\Entity 
* @ORM\Table(name="blog_category") 
*/ 
class Category 
{ 
    // ... 

    /** 
    * @ORM\OneToMany(targetEntity="Article", mappedBy="category") 
    */ 
    private $articles; 

    // ... 

} 

Warum ist die "Kategorie" richtigen Wert für mappedBy? Warum ist es nicht "blog_category" oder "Kategorie" (Großbuchstaben "C")? Oder "AppBundle: Kategorie"?

Antwort

1

Jetzt habe ich es herausgefunden. Es ist der Name der Variablen Einheit Klasse im Zusammenhang :-)

enter image description here

0

Ergänzung zu geben, fast alles was man in der Lehre tun konnte (sicher für andere ORM/ODM angewendet werden könnte), in fast allen Kontexten (QueryBuilder, findBy-Methoden, ...) Sie verwenden Eigenschaft Namen statt Spalte Namen.

Der Grund ist ziemlich einfach, ein ORM befasst sich mit Objekten und ihren Eigenschaften, abstrahiert die realen Tabellen und ihre Spalten, unabhängig von der Datenbank-Engine oder irgendetwas anderem.

Verwandte Themen