1

Magento セット関数は、faq_question、faq_answer 以外の列では機能しません。主キーは増加し続けますが、データは列に挿入されません。

列名に付けた名前に関係なく、null を表示し続けます。奇妙なことは、フィールドに手動で入力して使用するgetFaqJugaad()と機能することです。データベースから値を取得できます。しかし、設定されていません助けてください。ありがとう

config.xml

    <?xml version="1.0" encoding="UTF-8"?>

<config>
    <modules>
        <Gagan_Faq>
            <version>0.2.0</version>
        </Gagan_Faq>
    </modules>



<frontend>
    <routers>
        <faq>
            <use>standard</use>
            <args>
                <module>Gagan_Faq</module>
                <frontName>faq</frontName>
            </args>
        </faq>
    </routers>
   <layout>
        <updates>
            <faq>
                <file>gaganfaq.xml</file>
            </faq>
        </updates>
    </layout>
</frontend>

<global>
    <blocks>
        <faq>
            <class>Gagan_Faq_Block</class>
        </faq>
    </blocks>
    <helpers>
        <faq>
            <class>Gagan_Faq_Helper</class>
        </faq>
    </helpers>
    <models>
        <faq>
            <class>Gagan_Faq_Model</class>
            <resourceModel>faq_mysql4</resourceModel>
        </faq>
        <faq_mysql4>
            <class>Gagan_Faq_Model_Mysql4</class>
            <entities>
                <dinkchika>
                    <table>gagan_faq</table>
                </dinkchika>
                <dinkchika02>
                    <table>gagan_faq_creation</table>
                </dinkchika02>
            </entities>
        </faq_mysql4>
    </models>

   <resources>
        <faq_setup>
            <setup>
                <module>Gagan_Faq</module>
            </setup>
            <connection>
                <use>core_setup</use>
            </connection>
        </faq_setup>
        <faq_write>
            <connection>
                <use>core_write</use>
            </connection>
        </faq_write>
        <faq_read>
            <connection>
                <use>core_read</use>
            </connection>
        </faq_read>
    </resources>        
</global>

これは私のインストールスクリプトです

<?php


$installer = $this;
$installer->startSetup();
$installer->run("


CREATE TABLE IF NOT EXISTS {$this->getTable('faq/dinkchika')} (
  `faq_id` int(11) NOT NULL AUTO_INCREMENT,
  `faq_question` varchar(255) DEFAULT NULL,
  `faq_answer` varchar(255) DEFAULT NULL,
  `faq_jugaad` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`faq_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


");

$installer->endSetup();

インデックスコントローラー

<?php

class Gagan_Faq_IndexController extends Mage_Core_Controller_Front_Action
{
    public function indexAction()
    {
        $this->loadLayout();
        $mod = Mage::getModel('faq/faq');
        $mod->setFaqQuestion('how are 5454you?');
        $mod->setFaqAnswer('gooddsfsfsdfsfdffsd?');
        $mod->setFaqJugaad('sfsfdsfsfsdfsfdffsd?');
        $mod->save();

        $this->renderLayout();
    }
}

データベース テーブル

ここに画像の説明を入力

4

1 に答える 1

3

SQL セットアップ スクリプトの実行後に Magento モデルが正しく動作しないように見える場合 (たとえば、モデルが SQL スクリプトによって確実に追加されたフィールドに値を保存しない場合)、Magento のDDLキャッシュによってトラップされた可能性があります。

とりわけ ( CREATE、ステートメントINDEXなどFOREIGN KEY)、Magento は時間のかかるDESCRIBE tableステートメントの結果もキャッシュします。Magento モデルは、キャッシュされた結果 (保存時など) を使用してパフォーマンスを向上させます。

ここで、テーブル スキームを変更する SQL スクリプトを実行した後、何らかの理由でシステムがこの DDL キャッシュの更新に失敗した場合 ( ALTER, ADD, DROP)、モデルは変更を認識せずに古いキャッシュを引き続き使用します。

残念ながら、Magento Admin Backend のキャッシュをクリアするボタン/リンクでは、DDL キャッシュをオンデマンドでクリアすることはできません明示的でも暗示的でもありません (少なくとも、間違っている場合は訂正してください)。

DDL キャッシュをクリアする

var/cache/*DDL キャッシュをクリアするには、スイス アーミー ナイフ方式を使用して、フォルダーを手動で削除するだけです。これにより、DDL キャッシュだけでなく、既存の Magento のすべてのキャッシュがクリアされることに注意してください。

Varien_Db_Adapter_Pdo_Mysql::resetDdlCache()または、またはなどの多くの派生物の 1 つを呼び出すことができますMage_Core_Model_Resource_Setup::getConnection()->resetDdlCache()

このresetDdlCache()メソッドを使用すると、単一のテーブルまたはすべてのテーブルの DDL キャッシュを一度にリセットできます。_isDdlCacheAllowedただし、リセットが処理されるかどうかは、プロパティの現在の状態に依存することに注意してください。

于 2013-03-15T11:23:13.370 に答える