2

model->save()データベースには挿入されません。Magento キャッシュをオフにしました。
問題はありませんでしたが、データベースに挿入されません。
以下の私のコード:

try
{
    $cusSite = Mage::getModel('themeeditor/customersite');
                $cusSite->setData(array("customer_id" => 1,
                              "website_id" => 1,
                              "store_group" => 1,
                              "store_id" => 1));            
                $query = $cusSite->save();
}
catch(Exception $e)
{
    echo $e->getMessage;exit;
}

これは私のコード\local\FS\ThemeEditor\etc\config.xmlです

   <models>
                <themeeditor>
                    <class>FS_ThemeEditor_Model</class>
                    <resourceModel>themeeditor_mysql4</resourceModel>
                </themeeditor>
                <themeeditor_mysql4>
                    <class>FS_ThemeEditor_Model_Mysql4</class>
                    <entities>
                        <customersite>
                            <table>themeeditor_customersite</table>
                        </customersite>
                    </entities>
                </themeeditor_mysql4>
            </models>
<resources>             
            <themeeditor_setup>
                <setup>
                    <module>FS_ThemeEditor</module>
                    <class>Mage_catalog_Model_Resource_Eav_Mysql4_Setup</class>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </themeeditor_setup>
            <themeeditor_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </themeeditor_write>
            <themeeditor_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </themeeditor_read>
        </resources>

これは私のコード\local\FS\ThemeEditor\Model\Customersite.phpです

<?php

class FS_ThemeEditor_Model_Customersite extends Mage_Core_Model_Abstract
{
    public function _construct()
    {
        parent::_construct();
        $this->_init('themeeditor/customersite');
    }
}

これは私のコード\local\FS\ThemeEditor\Model\Mysql4\Customersite.phpです

<?php

class FS_ThemeEditor_Model_Mysql4_Customersite extends Mage_Core_Model_Mysql4_Abstract
{   
    public function _construct()
    {    
        // Note that the billingaddress_id refers to the key field in your database table.
        $this->_init('themeeditor/customersite', 'customer_id');
    }
}

これは私のコード\local\FS\ThemeEditor\Model\Mysql4\Customersite\Collection.phpです

<?php

class FS_ThemeEditor_Model_Mysql4_Customersite_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
{
    public function _construct()
    {
        parent::_construct();
        $this->_init('themeeditor/customersite');
    }
}

これは私のコードです\local\FS\ThemeEditor\sql\themeeditor_setup\mysql4-install-0.1.0.php

<?php 
$installer = $this;

$installer->startSetup();

$installer->run("
DROP TABLE IF EXISTS {$this->getTable('themeeditor_customersite')};
CREATE TABLE {$this->getTable('themeeditor_customersite')}(
    `customer_id` int(10) unsigned NOT NULL,
    `website_id` int(10) unsigned NOT NULL,
    `store_id` int(10) unsigned NOT NULL,
    `store_group` int(10) unsigned NOT NULL,
    FOREIGN KEY (`customer_id`) REFERENCES {$this->getTable('customer_entity')} (`entity_id`) ,
    PRIMARY KEY (`customer_id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;");

$installer->endSetup();

データベースに挿入できない理由がわかりません。

4

2 に答える 2

3

同様の問題がありました。私の主キーは自動生成されなかったので、Magento は Id フィールドに値があることを確認し、保存が挿入ではなく更新であると想定しました。修正は、Model_Resource クラスに次の行を追加することです。

protected $_isPkAutoIncrement = false;
于 2016-12-27T05:12:19.987 に答える
0

保存する前に、現在のストア ID を管理ストアに設定してみてください。

Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
于 2013-03-01T16:17:12.237 に答える