CakePHP saveAssociated speichert HasMany Through Model Data nicht

8

Ich versuche, meine zugeordneten Modelle in CakePHP 2.3 richtig zu speichern, aber ich habe Probleme. Ich speichere Posts und möchte wissen, welche Links in diesen Posts enthalten sind. Für jeden dieser Links möchte ich Ankertext speichern, wenn dieser verfügbar ist. Meine Datenbank ist wie im folgenden Diagramm eingerichtet.

Datenbankdiagramm http://derekperkins.com/wp-content/uploads/cakephp-database.png

Ankermodell

%Vor%

URL-Modell

%Vor%

PostsUrl-Modell

%Vor%

Post-Modell

%Vor%

Daten übermitteln

Ich habe ein Formular erstellt, um mein Modell zu testen. Dies ist der Code, den ich verwende, um das vom Formular erstellte Array zu speichern. Ich bekomme eine Nachricht, dass Dinge erfolgreich gespeichert wurden, aber nur der Post speichert. In die anderen drei Tabellen wird nichts eingegeben. Ich benutze auch DebugKit und keine SQL-Aufrufe verweisen auf diese Daten.

%Vor%

Ich habe auch versucht, meine Arrays so zu formatieren, dass sie die URL und den Anker unterhalb von PostUrl als Unterfeld haben, aber das hat auch nicht funktioniert.

Mein Model :: save-Funktionen sollen mich davon abhalten, Daten zu duplizieren, und sie funktionieren auch in anderen Modellen, die ich in der Vergangenheit benutzt habe (obwohl ich offen bin für Vorschläge zu einem besseren Weg, dies zu tun ein Datenbankaufruf für jeden Scheck). Ich habe auch versucht, sie zu kommentieren, und das hat keinen Einfluss auf meinen Code. Wie soll ich das strukturieren, um richtig zu speichern?

    
Derek Perkins 09.05.2013, 17:54
quelle

1 Antwort

3

Zunächst zu Ihren Model :: save-Funktionen, zum Beispiel:

%Vor%

druckt $ Daten auf diese Weise:

%Vor%

Diese $ Daten sind falsch, die korrekten Daten sind:

%Vor%

Sie müssen Ihre Model :: save-Funktion folgendermaßen ändern:

%Vor%

Zweitens, Sie können diese Daten nicht mit einem einzigen Speichern speichern, Sie sollten Ihre Daten auf diese Weise speichern:

%Vor%     
Arash Mousavi 18.05.2013 09:43
quelle