2012-03-29 7 views
3

ich ein benutzerdefiniertes Modul haben, das ein Feld inMagento speichert nicht Wert auf ‚Speichern‘

zu einem Element fügt
<?php 

class NS_MN_Block_Cms_Page_Edit_Tab_Main extends Mage_Adminhtml_Block_Cms_Page_Edit_Tab_Main 
{ 

public function _prepareForm() 
{ 
parent::_prepareForm(); 

$fieldset = $this->getForm()->getElements()->searchById('base_fieldset'); 

$fieldset->addField('bar', 'text', 
    array(
     'label' => Mage::helper('cms')->__('BaR'), 
     'class' => 'input-text', 
     'name' => 'bar', 
     'required' => false 
    ) 
); 
return $this; 
} 
} 

Ich habe hinzugefügt, um die bar Feld in die cms_page Tabelle und das Feld gerendert wird, aber Wenn ich die cms-Seite speichere, wird das Feld nicht in der Datenbank gespeichert.

Kann mir jemand sagen, was ich hier übersehen habe?

Antwort

9

Sie müssen daran denken, Ihren Cache zu leeren. Dieser hat mich schon ein paar Mal erwischt.

Gehen Sie in System > Cache Management und klicken Sie auf beide Spültasten.

Melden Sie sich vom Admin ab und wieder an. Alles sollte wie erwartet funktionieren.

+0

Cache ist deaktiviert, so dass ich den Cache nicht leeren muss – Jack

+3

Das ist eigentlich falsch. Sie können alle Cachetypen deaktiviert haben, um die Front für den Benutzer zwischenzuspeichern, aber "Cache leeren"! = "Cache aktualisieren". Wenn dieses Problem weiterhin besteht Tu wie gesagt in meiner Antwort. Aber es sieht so aus, als hättest du meine Antwort irgendwie akzeptiert. Vielen Dank! –

+0

Der Kicker für mich war, dass ich mich abmelden und wieder einloggen musste. Aus einem Grund, den ich nicht recht herausbekommen kann, war das Löschen des Cache nicht genug. Dafür eine halbe Stunde verschwendet! –

1

Haben Sie das Feld zur Datenbank hinzugefügt? Das Feld im Formular zu haben ist ein Schritt, aber um die Daten zu erhalten, muss es in einer Spalte in der DB leben können. Sobald das Feld in der DB ist, müssen Sie möglicherweise den Controller ändern, um das neue Feld zu erkennen, aber es funktioniert möglicherweise bereits für alle Felder. Wenn es bereits eine setData($data) ist, wo $data alle empfangenen Formulardaten sind, sollten Sie in Ordnung sein.

+0

Tut mir leid, durch die 'cms_page' Tabelle habe ich mich auf die Datenbank bezogen. – Jack

+0

In diesem Fall schauen Sie in den 'Controller', der das Speichern übernimmt. – Max

+0

Danke für Ihre Hilfe Max. Bei näherer Betrachtung scheint es, dass es in der Datenbank gespeichert wird, aber es füllt das Textfeld nach dem Speichern nicht auf. – Jack

Verwandte Themen