Ich arbeite an einem Back-End-Modul, das in einer benutzerdefinierten Tabelle speichert. Mein Problem ist, dass ich Felder zu dieser Tabelle hinzugefügt habe, während ich daran gearbeitet habe. Die neu hinzugefügten Felder werden nicht mit der Funktion Modell -> Speichern() gespeichert.Magento Modell speichert keine Werte
Ich habe das Modul vollständig entfernt und resinstalled es, lassen Sie es meine benutzerdefinierte Tabelle von Grund auf neu erstellen, wenn es einige interne Feld zählen hatte, dass ich nicht bewusst war, aber immer noch das gleiche Ergebnis.
Nach meinen Daten hinzufügen ich ein var-Dump auf dem, was wie folgt abgegeben wird:
$model = Mage::getModel("smsmanager/sms")->addData($post_data)->save();
var_dump($model->getData()); exit;
Mit dem Ergebnis
array
'form_key' => string 'RUGN3fruWobAf8CZ' (length=16)
'message' => string 'adg asdg sad' (length=14)
'country' => string 'SE' (length=2)
'telephone' => string '+46707332290' (length=12)
'type' => int 2
'id' => string '5' (length=1)
Und alles sieht ganz gut. Wenn ich die neu erstellte Zeile mit ID 5 überprüfen, ich diese:
|-----------------------------------------------------------------------------------------------------------|
|id int(11)| type int(11) | telephone varchar(20) | country varchar(2) | message text | date timestamp |
|-----------------------------------------------------------------------------------------------------------|
| 5 | 2 | +46707332290 | NULL | adg asdg sad | 2013-03-19 21:44:51 |
|-----------------------------------------------------------------------------------------------------------|
Ich habe versucht, auch andere Felder in der Datenbanktabelle wie „junkfield“ und fügen Sie ihn mit $post_data['junkfield'] = "hello";
und es wird auch manuell einfügen null als Wert.
Für mich sieht es aus wie Magento mit mir schraubt. Trotz Logik. Hat jemand eine andere Meinung zu dem, was falsch sein könnte? Oh, und bevor ich es vergesse, hier ist mein Tabellenlayout:
CREATE TABLE IF NOT EXISTS `sms_entry` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` int(11) NOT NULL,
`telephone` varchar(20) DEFAULT NULL,
`country` varchar(2) DEFAULT NULL,
`message` text,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Egal, was ich versuche, es werde nicht nur den Ländercode speichern. Ich versuchte auch, das vechar größer als 2 zu bilden und Namen zu country_code
zu schalten (in dem Fall war Land oder etwas reserviert). Nichts scheint zu helfen.
Hmm, das würde viel erklären. Ich verbrachte ungefähr 2 Stunden damit und begann zu denken, dass ich meine Meinung verlor. : P –
+1 für die Klärung –
wow thanks! Jetzt bekomme ich, warum Magento meine Fehler, die ich behoben habe, zwischengespeichert – nakajuice