gpt4 book ai didi

Symfony2 Doctrine2 ManyToMany 复合键引用的列名不存在

转载 作者:行者123 更新时间:2023-12-04 23:22:19 25 4
gpt4 key购买 nike

我与背面的复合键有 ManyToMany 关系。
当我使用控制台命令doctrine:schema:update 时,出现以下错误:

[Doctrine\ORM\ORMException]
Column name `keyword` referenced for relation from Map\MapBundle\Entity\
Student towards Map\MapBundle\Entity\SkillType does not exist.

我有一个实体学生(唯一键),它与实体技能(复合键)具有多对多关系,该实体技能(复合键)与技能类型(唯一键)具有多对一关系。

这是我拥有的不同类映射:

类(class)学生
<?php
namespace Map\MapBundle\Entity;
use Doctrine\ORM\Mapping as ORM;

/**
* Student
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="Map\MapBundle\Entity\StudentRepository")
*/
class Student {
/**
*
* @var integer @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

/**
* @ORM\ManyToMany(targetEntity="Map\MapBundle\Entity\SkillType")
* @ORM\JoinTable(name="students_skills",
* joinColumns={
* @ORM\JoinColumn(name="keyword", referencedColumnName="keyword"),
* @ORM\JoinColumn(name="attribut", referencedColumnName="attribut")
* })
*/
private $skills;
}

类(class)技能
<?php
namespace Map\MapBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Skill
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="Map\MapBundle\Entity\SkillRepository")
*/
class Skill {
/**
* @ORM\ManyToOne(targetEntity="Map\MapBundle\Entity\skillType")
* @ORM\JoinColumn(name="keyword", referencedColumnName="keyword")
* @ORM\Id
*/
private $keyword;
}

职业技能类型
<?php
namespace Map\MapBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* SkillType
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="Map\MapBundle\Entity\SkillTypeRepository")
*/
class SkillType {
/**
* @var string
*
* @ORM\Column(name="keyword", type="string", length=255)
* @ORM\Id
*/
private $keyword;
}

我试着换了 keywordattribut @joinColumn 行,但我有与 attribut 相同的错误消息而不是 keyword .

我看不出我的映射有什么问题。表技能存在并且具有名为 keyword 的列和 attribut .

我希望有人会看到我在哪里犯了错误(可能是拼写错误,例如缺少字符或大小写错误)。

最佳答案

谢谢您的回答。它对我帮助很大,我成功地进行了架构更新。
这是我最终使用的代码

/**
* @ORM\ManyToMany(targetEntity="Carte\CarteBundle\Entity\Skill")
* @ORM\JoinTable(name="students_skills",
* joinColumns={@ORM\JoinColumn(name="student_id", referencedColumnName="id")},
* inverseJoinColumns={
* @ORM\JoinColumn(name="keyword", referencedColumnName="keyword"),
* @ORM\JoinColumn(name="attribut", referencedColumnName="attribut")
* })
*/
private $skills;

关于Symfony2 Doctrine2 ManyToMany 复合键引用的列名不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20621483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com