【发布时间】:2016-02-24 17:49:28
【问题描述】:
我正在尝试创建一个与另一个实体 1:1 连接的实体。关键是Equip必须有一个Estadi,而且只有一个。我可以正确更新schema,数据库没问题,但是在网页调试器上出现映射错误。
关联 AppBundle\Entity\Equip#estadi 指的是逆 侧字段 AppBundle\Entity\Estadi#nom 未定义为 协会。
关联 AppBundle\Entity\Equip#estadi 指的是逆 边字段 AppBundle\Entity\Estadi#nom 不存在
这是实体 Estadi:
/**
* @ORM\Entity
* @ORM\Table(name="estadis")
*/
class Estadi{
/**
* @ORM\Column(type="string",length=30)
* @ORM\OneToOne(targetEntity="Equip",mappedBy="estadi",cascade={"persist"})
* @ORM\Id
*/
protected $nom;
/**
* @ORM\Column(type="integer")
*/
protected $aforament;
/**
* @ORM\Column(type="integer")
*/
protected $num_portes;
/**
* @ORM\Column(type="string",length=50)
*/
protected $direccio;
/**
* @ORM\Column(type="string", length=4)
*/
protected $any_construccio;
/**
* @ORM\Column(type="string", length=30)
*/
protected $nom_aficio;
}
这是实体装备:
/**
* @ORM\Entity
* @ORM\Table(name="equips")
*/
class Equip{
/**
* @ORM\Column(type="string",length=30)
* @ORM\Id
*/
protected $nom;
/**
* @ORM\Column(type="integer")
*/
protected $punts_lliga;
/**
* @ORM\Column(type="integer")
*/
protected $num_jugadors;
/**
* @ORM\OneToOne(targetEntity="Estadi",inversedBy="nom")
* @ORM\JoinColumn(name="nom_estadi",referencedColumnName="nom",onDelete="SET NULL")
*/
protected $estadi;
/**
* @ORM\OneToOne(targetEntity="Entrenador",inversedBy="nom")
* @ORM\JoinColumn(name="nom_entrenador",referencedColumnName="nom",onDelete="SET NULL")
*/
protected $entrenador;
/**
* @ORM\ManyToOne(targetEntity="Lliga",inversedBy="equips")
* @ORM\JoinColumn(name="nom_lliga",referencedColumnName="nom",onDelete="SET NULL")
*/
protected $lliga;
/**
* @ORM\OneToMany(targetEntity="Jugador",mappedBy="nom_equip")
*/
protected $jugadors;
public function __construct(){
$this->jugadors = new ArrayCollection();
}
}
【问题讨论】:
标签: symfony doctrine-orm mapping