Frage

Ich habe ein Modell-Audio und ein Modell AudioCategory.
Wenn ich das Audioobjekt speichere, möchte ich validieren, dass es mindestens 1 AudioCategory angebaut ist.

Ich habe dafür einen benutzerdefinierten Validator erstellt.
Ich habe versucht, die $ Audio-> GetRelated () im Validator zu verwenden, aber es versucht, in der Datenbank für die Info zu holen. Da die Validierung vor dem Speichern auftritt (was großartig ist), erhalte ich eine leere Liste, sodass mein Validator immer falsch zurückgibt.

Wenn ich das Audioobjekt ohne Speichern drucke, kann ich meine AudioCategory auf dem Feld _en des Audioobjekts sehen (Print_r ($ Audio);):
[_religiert: geschützt]=> Array
( [AudioCategory]=> Array
(
[0]=> GRQ \ Audio \ AudioCategory Object ([...])
[1]=> GRQ \ Audio \ AudioCategory Object ([...])
)
)

Wenn ich versuche, $ Audio-> AudioCategory direkt zu drucken, bekomme ich eine Kündigung:

Zugang zu undefined Property GRQ \ AUDIO \ AUDIO :: AudioCategory
und nichts wird zurückgegeben.

Wenn ich $ Audio-> GetRelated () aufrufe, erhalte ich ein Objekt des Typs PHALCON \ MVC \ Modell \ resultset \ einfach mit einem leeren _result. (Das ist logisch, da es in der Datenbank gesucht und gesucht wurde ...)


Daher ist meine Frage:
Wie kann ich die verwandten Felder erhalten und validieren, bevor Sie sie speichern?


Hier ist mein (verkürzter) Controller-Test:

generasacodicetagpre.

Hier ist das (verkürzte) Audiomodell:

generasacodicetagpre.

Hier ist das (verkürzte) Audiokategorie Modell:

generasacodicetagpre.

Hier ist mein benutzerdefinierter Validator (das nicht funktioniert und immer falsch zurückgibt):

generasacodicetagpre.

War es hilfreich?

Lösung

Ich habe also einen Weg gefunden, dies zu erreichen.Nicht sicher, dass es der beste Weg ist, aber es funktioniert:

Da die Werte geschützt sind, musste ich sie von meinem Objekt aussetzen.
Also habe ich ein Basismodell erstellt, von dem ich mich erweitern soll:

Basismodell:

generasacodicetagpre.

Ich habe dann meine Audiodelle geändert, um sich von meinem Basismodell auszuruhen:

Audiodell (vereinfacht):

generasacodicetagpre.

Mein AudioCategory-Modell (vereinfacht) blieb so ziemlich gleich:

generasacodicetagpre.

und mein Validator verwendet jetzt die zu validierende Methode:

generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top