如何解决 SQLSTATE[42000]:语法错误或访问冲突:1064



我有两个实体,匹配和团队,问题在于映射(我猜),我不是在寻找有人给我解决这个问题的方法,只是给我一些提示我应该在哪里查看文档。由于某种原因,我陷入了困境,找不到解决方案。我将提供我的两个实体的代码。 匹配.php

/**
* @var
* @ORMManyToOne(targetEntity="AppBundleEntityTeam", inversedBy="matchOne")
* @ORMJoinColumn(name="team_one_id", referencedColumnName="id")
*/
protected $teamOne;
/**
* @var
* @ORMManyToOne(targetEntity="AppBundleEntityTeam", inversedBy="matchTwo")
* @ORMJoinColumn(name="team_two_id", referencedColumnName="id")
*/
protected $teamTwo;

团队.php

/**
* @var
* @ORMOneToMany(targetEntity="AppBundleEntityMatch", mappedBy="teamOne")
*/
protected $matchOne;
/**
* @var
* @ORMOneToMany(targetEntity="AppBundleEntityMatch", mappedBy="teamTwo")
*/
protected $matchTwo;

当我查询匹配时,问题出在我的表单类型中,这是代码的一部分

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

和获取匹配功能

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

表单类型用于创建新投注,显然我想在下拉列表中显示比赛(球队名称,例如:切尔西 - 利物浦),并将该比赛的 id 写入投注实体。

问题出在表名上。匹配是MySQL中的保留字。因此,遇到相同或类似问题的每个人都请首先检查您的表名是否可能是保留字。我为此浪费了一整天,每次我遇到这样的问题时,都是这样愚蠢的事情......

相关内容

  • 没有找到相关文章