2017-05-08 17 views
0

私は2つのエンティティ、MatchとTeamを持っています。問題はマッピングされています(私は推測されます)、私はこの問題を解決する人を探していません。私はドキュメンテーションをどこで調べるべきかのヒントを教えてください。何らかの理由で私はこれに固執して解決策を見つけることができません..私は私の2つのエンティティのコードを提供します。私は試合を照会するとき Match.phpSQLSTATE [42000]を解決する方法:構文エラーまたはアクセス違反: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; 

問題は、私のフォームタイプであり、ここでのコード

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

そしてgetMatch機能

の一部です。
public function getMatch() { 
    return $this->getTeamOne()->getName() . ' - ' . $this->getTeamTwo()->getName(); 
} 

フォームタイプは新しい賭けを作成するためのものですが、明らかに私はマッチ(チーム名、例:チェルシー - リバプール)をドロップダウンで表示し、その賭けエンティティのIDを賭けエンティティに書きます。

答えて

1

テーブル名に問題がありました。 MatchはMySQLで予約語です。誰もが同じまたは同様の問題を経験している人は、まずあなたのテーブル名が予約語かもしれないかどうかチェックしてください。私はこれで一日中迷ってしまいました。このような問題があるたびに、このような愚かなものです...

関連する問題