我有一個ManyToMany關係與反面的組合鍵。 當我使用控制檯命令學說:架構:更新我有以下錯誤:Symfony2 Doctrine2 ManyToMany組合鍵引用的列名不存在
[Doctrine\ORM\ORMException]
Column name `keyword` referenced for relation from Map\MapBundle\Entity\
Student towards Map\MapBundle\Entity\SkillType does not exist.
我有一個實體的學生(唯一鍵)與實體技能(組合鍵),其具有多對一一個多對多關係與skillType(唯一鍵)的關係。
這裏是不同類的映射我有:
類學生
<?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;
}
類技術人員
<?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;
}
CLASSE skillType
<?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;
}
我試圖交換噸他keyword
和attribut
@joinColumn行,但我有attribut
而不是keyword
相同的錯誤消息。
我看不出我的映射有什麼問題。表格技巧存在並且具有名稱爲keyword
和attribut
的列。
我希望有人會看到我犯了一個錯誤(可能是一個錯字錯誤,如缺少字符或大小寫錯誤)。