J'ai deux modèles qui sont liés les uns aux autres:clé primaire + clé étrangère avec une erreur en double entrée
/** @Entity @Table(name="permissions") */
class Permissions {
/**
* @Id @GeneratedValue @Column(type="integer")
* @var integer
*/
protected $id;
/**
* @Column(type="string")
* @var string
*/
protected $name;
public function getId() { return $this->id; }
public function setName($name) { $this->name = $name; }
public function getName() { return $this->name; }
}
et
/** @Entity @Table(name="permissions_types") */
class PermissionsTypes {
/**
* @Id
* @OneToOne(targetEntity="Permissions")
* @JoinColumn(name="perm_id", referencedColumnName="id")
*/
protected $perm;
/**
* @Id
* @Column(type="integer")
* @var string
*/
protected $type;
/**
* @Column(type="string")
* @var string
*/
protected $name;
public function setType($type) { $this->type = $type; }
public function getType() { return $this->type; }
public function setName($name) { $this->name = $name; }
public function getName() { return $this->name; }
}
Quand je veux ajouter à PermissionsTypes deux entités avec des valeurs:
perm | type | name
-------------------
1 | 0 | test1
1 | 1 | test2
Je reçois
Duplicate entry '1' for key 'UNIQ_12CF91AFFA6311EF'
erreur sur la 1ère colonne. Ce que je fais mal?
Pouvez-vous faire un 'show create table nom_table' pour la table PermissionsTypes? On dirait que vous avez une clé unique sur la colonne perm, quand elle devrait être à travers perm et le type. –
Oui, j'ai une clé unique sur cette colonne. La question est, comment ça crée? –
Comment avez-vous créé le schéma de la table? À la main, ou a-t-il été généré automatiquement? –