2013-03-19 12 views
10

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.

Antwort

32

Deaktivierung der Cache-Optionen in Magento Admin-System macht nicht Deaktivieren Sie alle Zwischenspeicherung. Magento speichert weiterhin Tabellenstrukturen, Gebietsschema-Daten usw. im Verzeichnis var/cache/ unter dem Stammordner von Magento (dies ist NICHT/var/cache).

alle Caching zu deaktivieren, fügen Sie den folgenden <cache> Eintritt in den <global> Abschnitt app/etc/local.xml:

<config> 
    <global> 
     ... 
     <cache> 
      <backend>Zend_Cache_Backend_BlackHole</backend> 
     </cache> 
     ... 

die Tabellenstrukturen enthält, gehen in das Admin System den Cache zu leeren, und wählen Sie System> Cache Management> Flush Cache Storage (nicht Magento Cache leeren!). Dadurch werden die Dateien in var/cache entfernt.

Sie können auch den Cache über die Kommandozeile bündig:

$ sudo rm -fr /path/to/your/magento/installation/var/cache/* 
+1

Hmm, das würde viel erklären. Ich verbrachte ungefähr 2 Stunden damit und begann zu denken, dass ich meine Meinung verlor. : P –

+0

+1 für die Klärung –

+0

wow thanks! Jetzt bekomme ich, warum Magento meine Fehler, die ich behoben habe, zwischengespeichert – nakajuice

5

so weit ich weiß - Magento Caching Datenbankstruktur irgendwie. so nur Flush Magento Cache sollte helfen

+0

Aber ich habe alles entfernt, einschließlich der 'core_resources' Reihe mit dem Modul und dann wieder installiert. Außerdem sind alle meine Cache-Einstellungen für diese lokale Dev-Maschine ausgeschaltet. –

+1

Ich hatte vor einiger Zeit dieselben Probleme und alle meine Caches waren auch deaktiviert. Und wie ich mich erinnere "Flush Cache" war meine Lösung. – TaganPablo

+0

ok, ich werde das morgen versuchen. Vielen Dank. –

0

+1 beachten Sie, dass auch in meinem Fall, ich REDIS Cache nur vergessen haben, war ich mit, so im Falle Sie verwenden diese, don‘ Vergiss nicht, auch diesen Cache zu entfernen !!

Verwandte Themen