我正在试图在我的实体'Grupo'中设置一个主键,它必须由两个字段组成:'id_grupo'和'id_estudiante'。我不知道怎么做。需要帮助。谢谢!
/**
* @ORM\Entity()
* @DoctrineAssert\UniqueEntity(fields = {"id_grupo", "id_estudiante", "nombre_grupo"})
* @DoctrineAssert\
*/
class Grupo
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue
*/
protected $id_grupo;
/**
* @ORM\ManyToOne(targetEntity="Estudiante", inversedBy="grupos")
* @ORM\JoinColumn(name="estudiante_id", referencedColumnName="id")
**/
protected $id_estudiante; // Estudiante propietario del grupo
/** @ORM\Column(type="string", length=100) */
protected $nombre_grupo;
}
/**
* @ORM\Entity()
* @DoctrineAssert\UniqueEntity(fields = {"id", "guid"})
*/
class Estudiante implements UserInterface
{
/**
* @ORM\Id
* @ORM\Column(type="string",length=100)
* @Assert\NotBlank(message = "Por favor, indica tu email")
* @Assert\Email(message = "El email introducido no es válido",
* checkMX=true)
* @ORM\ManyToMany(targetEntity="Estudiante", mappedBy="mis_amigos")
*/
protected $id_estudiante;
(...)
/**
* @ORM\OneToMany(targetEntity="Grupo", mappedBy="id_estudiante")
**/
protected $grupos;
}
答案 0 :(得分:2)
基本上你可以做这样的事情(没有检查所以你需要检查它:)):
/**
* @ORM\Entity()
*/
class Grupo
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="Estudiante")
*/
private $estudiante;
}