2016-07-12 2 views
4

Kann nicht meinen Kopf darum wickeln. Ich mehr oder weniger aus dem Tutorial kopiert, aber der Profiler wirft zwei Fehler:Doktrin: bezieht sich auf besitzende Seite Feld, das nicht existiert (wieder)

AppBundle \ Entity \ Marke Die Vereinigung AppBundle \ Entity \ Brand # Geräte auf die besitzende Seite Feld Geräte # Marken AppBundle \ Entity \ verweist welche existiert nicht.

AppBundle \ Entity \ Device Der Verband AppBundle \ Entity \ Device # Marke dem Inversen Seitenfeldmarken AppBundle \ Entity \ Brand # bezieht sich die nicht existiert.

class Brand { 

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

... 

    /** 
    * @ORM\OneToMany(targetEntity="Device", mappedBy="brands") 
    */ 
    private $devices; 
} 

und

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

... 

    /** 
    * @ORM\ManyToOne(targetEntity="Brand", inversedBy="devices") 
    * @ORM\JoinColumn(name="brand_id", referencedColumnName="id", nullable=true) 
    */ 
    private $brand; 
} 

Antwort

5

habe es nicht getestet, aber nach docs, sollte es so etwas wie dieses

sehen http://doctrine-orm.readthedocs.io/projects/doctrine-orm/en/latest/reference/association-mapping.html#one-to-many-bidirectional

class Brand { 

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

... 

    /** 
    * @ORM\OneToMany(targetEntity="Device", mappedBy="brand") 
    */ 
    private $devices; 
} 

und

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

... 

    /** 
    * @ORM\ManyToOne(targetEntity="Brand", inversedBy="devices") 
    * @ORM\JoinColumn(name="brand_id", referencedColumnName="id", nullable=true) 
    */ 
    private $brand; 
} 
+0

gut huh! Du hast recht! Die Werte inversedBy und mappedBy sind also keine Tabellennamen? – bluppfisk

+2

Nein, es ist interne Doktrin Sache, überprüfen Sie diese http://stackoverflow.com/a/34583366/3275814 – lchachurski

+0

Danke, große Hilfe! – bluppfisk

Verwandte Themen