Frage

Ich versuche, ein Modell für Content-Seiten auf meiner Website zu bauen, und ich habe es selbst Referenz namens ‚Verwandte Seite‘. Nun, wenn ich meine Modelle bauen und versuchen, eine neue Seite im Admin-Generator zu schaffen, alles gut funktioniert. Wenn ich geben der Seite eine ähnliche Seite (oder mehr) funktioniert es auch in Ordnung, aber wenn ich auf die andere Seite gehen und versuchen zu bearbeiten die Referenzen symfony Abstürze:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '2-2' for key 'PRIMARY'

Ich habe es in phpMyAdmin und bemerken, dass in der Zuordnungstabelle ich habe 2-IDs (ID1 und ID2) und nur die erste ID ist ein Link:

(sorry ich konnte nicht einen Link einfügen)

Ich habe versucht, ein ‚id‘ Feld auf die Zuordnungstabelle zu geben, so dass ich drei Felder hatte (id, ID1, ID2), und ich sah, dass, wenn ich die Beziehungen in der anderen Seite (page2 zu Seite1 und Seite2 zu page3 aktualisieren ) ist es, die Beziehungen für die Seite (page2 zu Seite1 und page3) zu schaffen, und es wird die alten Beziehungen zu löschen (es page1 zu page2 und page1 zu page3 war) und die endgültigen Beziehungen i in der Zuordnungstabelle habe, ist page1 zu Seite 1 (???) Seite 2 bis Seite1 und Seite2 zu page3.

Meine Modelle sind:

Page:
//...
      relations:
        RelatedPages:
          class: Page
          local: id1
          foreign: id2
          refClass: RelatedPage
          equal: true

RelatedPage:
  columns:
    id1:
      type: integer(4)
      primary: true
      unsigned: true
      notnull: true
    id2:
      type: integer(4)
      primary: true
      unsigned: true
      notnull: true

Ich bin mit dem symfony Admin-Generator. Muss ich einen Code zu schreiben, dies zu umgehen, oder bin ich etwas falsch zu machen?

Ich habe die Lehre Dokumentation: link text

und es scheint, dass alles in Ordnung ist.

War es hilfreich?

Lösung 2

Okay, es war eine Art Lehre Fehler:

Link-Text

Die Lösung ist da.

Andere Tipps

Sie müssen onDelete: CASCADE zum RelatedPages Beziehung hinzuzufügen.

Hier ist der Symfony bug: http://trac.symfony-project.org/ticket/6273

edem Lösung ist für mich nicht funktioniert.
Dies ist meine Lösung.
Schreiben in lib / model / RelatedPage.class.php

class RelatedPage extends BaseRelatedPage
{


    public function save(Doctrine_Connection $conn = null)
    {
        if ($this->isNew() !== true && $this->getId1() == $this->getId2()) {
            return;
        }//end if

        return parent::save($conn);
    }//end save()

}//end class
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top