Voici les entités (parties concernant le problème) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| /**
* Criterion
*
* @ORM\Table(name="innova_stepcondition_criterion")
* @ORM\Entity(repositoryClass="Innova\PathBundle\Repository\CriterionRepository")
*/
class Criterion implements \JsonSerializable
{
/**
* Criteriagroup
* @var \Innova\PathBundle\Entity\Criteriagroup
*
* @ORM\ManyToOne(targetEntity="Innova\PathBundle\Entity\Criteriagroup", inversedBy="criteria", cascade={"persist"})
*/
protected $criteriagroup;
} |
et
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| /**
* Criteriagroup
*
* @ORM\Table(name="innova_stepcondition_criteriagroup")
* @ORM\Entity(repositoryClass="Innova\PathBundle\Repository\CriteriagroupRepository")
*/
class Criteriagroup implements \JsonSerializable
{
/**
* Criteria linked to the criteriagroup
* @var \Doctrine\Common\Collections\ArrayCollection
*
* @ORM\OneToMany(targetEntity="Innova\PathBundle\Entity\Criterion", mappedBy="criteriagroup", indexBy="id", cascade={"persist", "remove"})
*/
protected $criteria;
} |
Quand j'essaie de supprimer un criteriagroup, je souhaite que les criterion associés soient supprimés aussi. j'ai cette erreur :
An exception occurred while executing 'DELETE FROM innova_stepcondition_criteriagroup WHERE id = ?' with params [1]: SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`claroline_path`.`innova_stepcondition_criteriagroup`, CONSTRAINT `FK_F33A94EA727ACA70` FOREIGN KEY (`parent_id`) REFERENCES `innova_stepcondition_criteriagroup` (`id`))
j'ai lu dans plusieurs post qu'il faut ajouter onDelete="SET NULL" coté ManyToOne side, ce que j'ai testé. But j'ai toujours l'erreur.
j'ai testé
Quel pourrait être le problème (la solution) ?
Evidemment je fais un doctrine:schema:update --force après chaque modification
merci d'avance
Partager