2017-02-21 2 views
0

erste Entschuldigung für mein Englisch, es ist nicht meine Muttersprache.Zeile mit joinTable löschen Symfony

Also, ich möchte eine Zeile aus einer Tabelle löschen:

@ORM\Table(name="demandes") 
class Demande 
{ 
/** 
* @ORM\Column(type="integer") 
* @ORM\Id 
* @ORM\GeneratedValue(strategy="AUTO") 
*/ 
private $id; 

/** 
* @ORM\ManyToMany(targetEntity="Site", cascade="all", orphanRemoval=true) 
* @ORM\JoinTable(name="demandes_sites", 
*  joinColumns={@ORM\JoinColumn(name="demande_id", referencedColumnName="id", onDelete="CASCADE")}, 
*  inverseJoinColumns={@ORM\JoinColumn(name="site_id", referencedColumnName="id", onDelete="CASCADE")} 
*  ) 
* @Assert\Count(min = 1) 
*/ 
private $sites; 
} 

Aber wenn ich löschen, habe ich diesen Fehler:

An exception occurred while executing 'DELETE FROM demandes WHERE numero_qc = ?' with params ["test delete"]: 

SQLSTATE[23503]: Foreign key violation: 7 ERROR: update or delete on table "demandes" violates foreign key constraint "fk_7c6153f880e95e18" on table "demandes_sites" 
DETAIL: Key (id)=(52) is still referenced from table "demandes_sites". 

Was mache ich falsch?

Edit: Nach php console doctrine:schema:update --dump-sql --force

tun Ich habe diese Ausfahrt:

ALTER TABLE demandes_sites DROP CONSTRAINT FK_7C6153F880E95E18; ALTER TABLE demandes_sites DROP CONSTRAINT FK_7C6153F8F6BD1646; ALTER TABLE demandes_sites ADD CONSTRAINT FK_7C6153F880E95E18 FOREIGN KEY (demande_id) REFERENCES demandes (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE; ALTER TABLE demandes_sites ADD CONSTRAINT FK_7C6153F8F6BD1646 FOREIGN KEY (site_id) REFERENCES sites (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE;

Die richtige Lösung für mich war tu-Update-Datenbank-Schema. Mein Fehler ist, dass ich den Fehler sehen didnt, der die maj blockiert und dachte es war richtig

Danke an alle gemacht, die mich

half
+0

Try-Cache und Update-Schema löschen .. –

+0

Sie müssen Datensätze löschen von „demandes_sites“ Tabelle mit Bezug zu notieren, die Sie aus der Tabelle zu löschen versuchen, „Demandes“ –

+0

Delete cache didn t work / Das Attribut onDelete = "CASCADE" ist nicht dazu gedacht, verwandte Datensätze von "demandes_sites" für mich zu löschen? –

Antwort

0

Vielleicht kannst du die onDelete="CASCADE" Optionen, wenn Sie bereits das Modell erzeugt hatte die DB und du hast nicht aktualisiert.

Stellen Sie sicher, was mit dem Befehl geschieht

php app/console doctrine:schema:update --dump-sql 
+0

Ich habe: [InvalidArgumentException] Das Verzeichnis "XXX" ist nicht beschreibbar. Ich mache es auch mit --force Option, dasselbe Ergebnis. Ich denke, es heißt, dass ich nicht richtig geschrieben habe –

+0

Versuchen Sie, alle Dateien in 'app/cache' und' app/logs' zu löschen und dann richtige Berechtigungen 'chmod 777 app/cache app/logs' und wiederholen Sie die vorherigen Befehle – ste

+0

Wie ich dachte es war geschriebene Angelegenheit. Ich sudo den Befehl und es bestanden. Ich bearbeite die Frage, um die Ausgabe zu setzen. –