自定义magento扩展名不保存表单后期值

时间:2013-02-03 11:47:09

标签: database forms magento module

我正在尝试创建自定义magento扩展程序。

可行,只有1个表单字段不会保存到数据库中。

public function saveAction()
{
    if ($postData = $this->getRequest()->getPost()) {
        $model = Mage::getSingleton('foo_bar/baz');
        $model->setData($postData);

        try {
            $model->save();

            Mage::getSingleton('adminhtml/session')->addSuccess($this->__('The baz has been saved.'));
            $this->_redirect('*/*/');

            return;
        }   
        catch (Mage_Core_Exception $e) {
            Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
        }
        catch (Exception $e) {
            Mage::getSingleton('adminhtml/session')->addError($this->__('An error occurred while saving this baz.'));
        }

        Mage::getSingleton('adminhtml/session')->setBazData($postData);
        $this->_redirectReferer();
    }
}

表格:

  protected function _prepareForm()
{  
    $model = Mage::registry('foo_bar');

    $form = new Varien_Data_Form(array(
        'id'        => 'edit_form',
        'action'    => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
        'method'    => 'post'
    ));

    $fieldset = $form->addFieldset('base_fieldset', array(
        'legend'    => Mage::helper('checkout')->__('Baz Information'),
        'class'     => 'fieldset-wide',
    ));

    if ($model->getId()) {
        $fieldset->addField('id', 'hidden', array(
            'name' => 'id',
        ));
    }  

    $fieldset->addField('name', 'text', array(
        'name'      => 'name',
        'label'     => Mage::helper('checkout')->__('Name'),
        'title'     => Mage::helper('checkout')->__('Name'),
        'required'  => true,
    ));

     $fieldset->addField('stock', 'text', array(
        'name'      => 'stock',
        'label'     => Mage::helper('checkout')->__('stock'),
        'title'     => Mage::helper('checkout')->__('stock'),
        'required'  => true,

    ));

    $form->setValues($model->getData());
    $form->setUseContainer(true);
    $this->setForm($form);

    return parent::_prepareForm();
}  
}

'库存字段的值未保存'。

我检查了db库中是否存在列库存,而且名称是相同的。

有谁知道我做错了什么?

提前致谢。

1 个答案:

答案 0 :(得分:2)

如果您在所有其他人之后添加了库存字段,则可能只需要通过管理系统清除缓存 - >缓存管理(Flush Magento Cache和Flush Cache Storage按钮)。 Magento喜欢缓存先前的查询,因此在不清除缓存的情况下添加新字段可能会导致新列无法保存。