2017-05-08 1 views
0

Ich habe zwei Entitäten, Match und Team, Problem ist im Mapping (ich denke), ich suche nicht jemanden, der mir eine Lösung für dieses Problem gibt, Gib mir nur einen Hinweis, wo ich in der Dokumentation nachsehen soll. Aus irgendeinem Grund bin ich auf diesem festgefahren und kann keine Lösung finden. Ich werde Code meiner zwei Entitäten zur Verfügung stellen. Match.phpSo beheben Sie SQLSTATE [42000]: Syntaxfehler oder Zugriffsverletzung: 1064

/** 
* @var 
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Team", inversedBy="matchOne") 
* @ORM\JoinColumn(name="team_one_id", referencedColumnName="id") 
*/ 
protected $teamOne; 

/** 
* @var 
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Team", inversedBy="matchTwo") 
* @ORM\JoinColumn(name="team_two_id", referencedColumnName="id") 
*/ 
protected $teamTwo; 

Team.php

/** 
* @var 
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Match", mappedBy="teamOne") 
*/ 
protected $matchOne; 

/** 
* @var 
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Match", mappedBy="teamTwo") 
*/ 
protected $matchTwo; 

Problem in meinem Formulartyp ist, wenn ich für Match abfragen, hier ist Teil des Codes

->add('match', EntityType::class, [ 
     'class' => 'AppBundle:Match', 
     'choice_label' => 'getMatch', 
     ]) 

Und getMatch Funktion

public function getMatch() { 
    return $this->getTeamOne()->getName() . ' - ' . $this->getTeamTwo()->getName(); 
} 

Der Formulartyp ist für das Erstellen einer neuen Wette, offensichtlich möchte ich die Matches (Teamnamen, Beispiel: Chelsea - Liverpool) im Drop-Down-Menü anzeigen und die ID dieses Matches an die Bet-Entität schreiben.

Antwort

1

Problem war in Tabellenname. Match ist ein reserviertes Wort in MySQL. Also, bitte überprüfen Sie zuerst, ob Ihr Tabellenname ein reserviertes Wort ist. Ich habe einen ganzen Tag verloren, und jedes Mal, wenn ich ein Problem habe, ist es etwas so dummes ...

Verwandte Themen