0

カスタムの 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();
}  
}

「在庫フィールドの値は保存されません」。

データベースに列ストックが存在し、名前が同じであることを確認しました。

私が間違っていることを誰かが知っていますか?

前もって感謝します。

4

1 に答える 1

3

他のすべての後に在庫フィールドを追加した場合は、管理システム -> キャッシュ管理 (Flush Magento Cache および Flush Cache Storage ボタン) を介してキャッシュをクリアするだけでよい可能性があります。Magento は以前のクエリをキャッシュするのが好きなので、キャッシュをクリアせずに新しいフィールドを追加すると、新しい列が保存されないという問題が発生する可能性があります。

于 2013-02-03T14:02:25.913 に答える