2017-10-12 2 views
0

Ich habe zwei Doktrinsentitäten (Firma und Lieferant), die durch eine CompanySupplier-Entität miteinander verbunden sind. Entities und yaml Ressourcen sind wie folgt:Doktrin "Relation existiert nicht" Fehler

class Company 
{ 
    /** 
    * @var integer 
    */ 
    private $id; 

    /** 
    * @var string 
    */ 
    private $name; 

} 

class Supplier 
{ 
    /** 
    * @var integer 
    */ 
    private $id; 

    /** 
    * @var string 
    */ 
    private $name; 

}  

class CompanySupplier 
{ 
    /** 
    * @var integer 
    */ 
    private $id; 

    /** 
    * @var integer 
    */ 
    private $company_id; 

    /** 
    * @var integer 
    */ 
    private $supplier_id; 

} 

Meine Ressourcen sind wie folgt:

AppBundle\Entity\Company: 
    type: entity 
    table: companies 
    id: 
    id: 
     type: integer 
    fields: 
    name: 
     type: string 
    manyToMany: 
    Suppliers: 
     targetEntity: Supplier 
     joinTable: 
     name: company_suppliers 
     joinColumns: 
      company_id: 
      referencedColumnName: id 
     inverseJoinColumns: 
      supplier_id: 
      referencedColumnName: id 


AppBundle\Entity\Supplier: 
    type: entity 
    table: suppliers 
    id: 
    id: 
     type: integer 
    fields: 
    name: 
     type: string 

AppBundle\Entity\CompanySupplier: 
    type: entity 
    table: company_suppliers 
    id: 
    id: 
     type: integer 
    fields: 
    company_id: 
     type: integer 
    supplier_id: 
     type: integer 
    ManyToMany: 
    Supplier: 
     targetEntity: Supplier 
     joinColumn: 
     name: id 
     referencedColumnName: supplier_id 

Das Problem ist dies eine zu verursachen scheint „Beziehung company_supplier nicht vorhanden“ Fehler, die ich nicht sehen kann wie man löst. Was muss ich tun, um die Beziehungen einzurichten, damit diese funktionieren?

Es funktioniert, wenn ich nicht die CompanySupplier-Entität und Ressource habe, aber sobald ich diese Fehler definieren, beginnen zu erscheinen.

Ich würde mich über alle Hinweise freuen, die mich verrückt machen.

Antwort

0

tun, um die Namespace ändern, und Sie brauchen nicht die relationale Tabelle zu schreiben, ich denke, see here

Company: 
    type: entity 
    manyToMany: 
    supplier: 
     targetEntity: CompanySupplier 
     inversedBy: company 
     joinTable: 
     name: company_suppliers 
     joinColumns: 
      name: id 
      referencedColumnName: supplier_id 
     inverseJoinColumns: 
      supplier_id: 
      referencedColumnName: id 

Supplier: 
    type: entity 
    manyToMany: 
    company: 
     targetEntity: Company 
     mappedBy: supplier 
Verwandte Themen