在数据库中插入表单信息。 Magento 1.9

时间:2016-07-18 13:01:30

标签: database forms post magento-1.9

我有一些表格。

<form action="<?php echo Mage::getUrl('siteblocks/test/test', array('_current' => true,'_use_rewrite' => true))?>" method="post">
        <h3>Enter your information</h3>
        <p>
            <label for="name" class="name" >Customer Name</label>
            <input id="customer_name" name="customer_name" required="required" type="text"/>
        </p>
        <p>
            <label for="phone" class="phone" >Customer Phone</label>
            <input id="customer_phone" name="customer_phone" required="required" type="text"/>
        </p>
        <p>
            <label for="calltime" class="ctime"  >Call Time</label>
            <input id="calltime" name="call_time" required="required" type="text"/>
        </p>
    </form>

信息来自表单到控制器

class Test_Test_Controller extends Mage_Core_Controller_Front_Action {

public function testAction()
{

    $this->getRequest()->getPost();

    Mage::getModel('siteblocks/callEntity')->setData($this->getRequest()->getPost())

        ->save();
}

}

config.xml中

<config>
    <modules>
        <Test_Test>
            <version>0.1.0</version>
        </Test_Test>
    </modules>
    <global>
        <models>
            <siteblocks>
                <class>Test_Test_Model</class>
                <resourceModel>siteblocks_resource</resourceModel>
            </siteblocks>
            <siteblocks_resource>
                <class>Test_Test_Resourse</class>
                <entities>
                    <block>
                        <table>fast_call</table>
                    </block>
                </entities>
            </siteblocks_resource>
        </models>
        <resources>
            <siteblocks_setup>
                <setup>
                    <module>Test_Test</module>
                </setup>
            </siteblocks_setup>
        </resources>
        <helpers>
            <siteblocks>
                <class>Test_Test_Helper</class>
            </siteblocks>
        </helpers>
    </global>
    <frontend>
        <routers>
            <siteblocks>
                <use>standard</use>
                <args>
                    <module>Test_Test</module>
                    <frontName>siteblocks</frontName>
                </args>
            </siteblocks>
        </routers>
        <translate>
            <modules>
                <Test_Test>
                    <files>
                        <defaul>Test_Test.scv</defaul>
                    </files>
                </Test_Test>
            </modules>
        </translate>
        <layout>
            <updates>
                <mymodule>
                    <file>test_catalog.xml</file>
                </mymodule>
            </updates>
        </layout>
    </frontend>
    <admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <siteblocks before="Mage_Adminhtml">Test_Test_Adminhtml</siteblocks>
                    </modules>
                </args>
            </adminhtml>
        </routers>
    </admin>
    <default>
        <web>
            <routers>
                <siteblocks_callentity>
                    <area>frontend</area>
                    <class>Test_Test_Controller_Router</class>
                </siteblocks_callentity>
            </routers>
        </web>
      </default>
    </config>

问题是数据不是以基础

发送的
<?php
$installer = $this;
$installer->startSetup();
$table = $installer->getConnection()->newTable($installer->getTable('fast_call'))
    ->addColumn('id', Varien_Db_Ddl_Table::TYPE_INTEGER, array(
        'unsigned' => true,
        'nullable' => false,
        'primary' => true,
        'identity' => true,
    ), 'id')
    ->addColumn('customer_name', Varien_Db_Ddl_Table::TYPE_VARCHAR, 255, array(
        'nullable' => false,
        'default' => '',
    ), 'customer_name')
    ->addColumn('customer_phone', Varien_Db_Ddl_Table::TYPE_VARCHAR, 255, array(
        'nullable' => false,
        'default' => '',
    ), 'customer_phone')
    ->addColumn('call_time', Varien_Db_Ddl_Table::TYPE_VARCHAR, 255, array(
        'nullable' => true,
        'default' => '',
    ), 'call_time')
    ->setComment('fast_call');
$installer->getConnection()->createTable($table);
$installer->endSetup();

当发送信息时,控制器会收到信息并且似乎必须将其输入数据库。但这不会发生。调试什么都没有。也许有人会发现错误

1 个答案:

答案 0 :(得分:0)

在您的控制器中,将 setData 更改为 addData