Binding Zend2 Form Daten von Doctrine2 ODM

7

Gibt es einen besseren Weg, um Daten aus einer ODM-Entity-Klasse von doctrine2 in ein Zend2-Formular zu binden, außer bind() ?

zu verwenden

Wenn ja, was wäre es? Würde ich die Daten einfach als Array abrufen und jedes einzelne Feld übergeben? Ich kämpfe damit und mache es wahrscheinlich schwieriger, als es sein muss.

Wenn ich die Funktion bind() aufruft, wird ein Zend-Fehler ausgegeben, der auf den Standard-Hydrator verweist. Muss ich in meiner Entitätsklasse etwas Spezielles tun?

Edit: Hier sind die genauen Fehler, die Zend wirft

  

~ \ Hersteller \ zendframework \ zendframework \ library \ Zend \ Stdlib \ Hydrator \ ArraySerializable.php: 35

     

Zend \ Stdlib \ Hydrator \ ArraySerializable :: extract erwartet das zur Verfügung gestellte   Objekt zur Implementierung von getArrayCopy ()

Sie lassen mich denken, ich muss entweder:

  1. verwende Zends-Hydratoren (über die ich nachforschen müsste) oder
  2. benutze die hydratore von doctrine2 (was ich auch herausfinden müsste, wie man am besten implementiert)
bl4design 23.10.2012, 20:06
quelle

5 Antworten

14

Damit Zend \ Form deine Einheit hydratisieren kann, musst du so etwas in deiner Entitätsklasse haben:

%Vor%     
Marcel Djaman 22.03.2013, 00:00
quelle
2

in dir ... / Model / XXXXTable.php
Definieren Sie eine Funktion, die einen Datensatz erhalten soll.

%Vor%     
Chuxin 04.09.2013 05:46
quelle
2

Ich benutze den folgenden Code in module.config.php, um den Doktrin-Hydrator zu verwenden

%Vor%     
shukshin.ivan 26.06.2014 07:37
quelle
1

Ich verwende die populate-Methode in meiner Entitätsklasse. etwas wie das

%Vor%

und dann im Controller können Sie die Funktion populate so verwenden.

%Vor%

Ich bin mir nicht sicher, ob ich Ihre Frage richtig verstehe.

    
Developer 24.10.2012 14:43
quelle
1

Glücklicherweise brauchen Sie in Ihren Entitäten nichts mehr, wenn Sie diesem Tutorial folgen:

Ссылка < Ich benutze fast den gleichen Ansatz und es funktioniert (fast) gut. Zwei Dinge, die Sie beachten sollten:

1.) Stellen Sie sicher, dass Sie alle Daten validieren, die Sie in Ihren Tabellen haben (oder zumindest die Nicht-Null-Daten), da nur validierte Felder an die Datenbank gesendet werden. Es wurde mir vom Autor dieses Blogs gesagt. :)

2.) Wenn Sie die Ansicht für das Bearbeitungsformular erstellen, fügen Sie die ID zur Route hinzu:

%Vor%

Viel Glück!

    
Máté Kocsis 30.10.2012 08:30
quelle

Tags und Links