0

無料の magento 拡張機能 (WebForms) を使用してカスタム アンケートを作成しているので、インストールして変更しました。拡張機能のモデルは EAV を使用しません。関連するテーブルがあります。

| webforms                                    |
| webforms_fields                             |
| webforms_fieldsets                          |
| webforms_results                            |
| webforms_results_values                     |

3 つのカスタム属性を追加しました: rating (int) を webforms_results_values に、is_customer_survey (tinyint) を webforms に、view_on_frontend (tinyint) を webforms_results に追加しました。モジュールのモデルは、Webforms (マッピング webforms)、Fields (マッピング webforms_fields)、Fieldsets (マッピング webforms_fieldsets)、Results (マッピング webforms_results) です。現在、webforms_results_values はモデルにマップされていません。カスタム属性を簡単に操作する必要があるため、次の変更を行いました。

// WebForms/Model に Results というディレクトリを追加し、その中に Values.php (app/code/local/Custom/WebForms/Model/Results/Values.php class Custom_WebForms_Model_Results_Values extends Mage_Core_Model_Abstract { public function _construct() { 親: :_construct(); $this->_init('webforms/results_values'); } }

//added two files in app/code/local/Custom/WebForms/Model/Mysql4:
//app/code/local/Custom/WebForms/Model/Mysql4/Results/Values.php
class Custom_WebForms_Model_Mysql4_Results_Values
extends Mage_Core_Model_Mysql4_Abstract
{
    public function _construct(){
        $this->_init('webforms/results_values','id');
    }

}  

//app/code/local/Custom/WebForms/Model/Mysql4/Results/Values/Collection.php
class Custom_WebForms_Model_Mysql4_Results_Values_Collection
extends Mage_Core_Model_Mysql4_Collection_Abstract
{

    public function _construct(){
        parent::_construct();
        $this->_init('webforms/results_values');
    }
}  

次に、etc/config.xml のセクションを変更しました。

    <models>
        <webforms>
            <class>Custom_WebForms_Model</class>
            <resourceModel>webforms_mysql4</resourceModel>
        </webforms>
        <results>
            <class>Custom_WebForms_Model</class>
            <resourceModel>webforms_mysql4</resourceModel>
        </results>
        <fields>
            <class>Custom_WebForms_Model</class>
            <resourceModel>webforms_mysql4</resourceModel>
        </fields>
        <fieldsets>
            <class>Custom_WebForms_Model</class>
            <resourceModel>webforms_mysql4</resourceModel>
        </fieldsets>
                    <results_values>
                            <class>Custom_WebForms_Model</class>
                            <resourceModel>webforms_mysql4</resourceModel>
                    </results_values>
        <webforms_mysql4>
            <class>Custom_WebForms_Model_Mysql4</class>
            <entities>
                <webforms>
                    <table>webforms</table>
                </webforms>
                <fields>
                    <table>webforms_fields</table>
                </fields>
                <fieldsets>
                    <table>webforms_fieldsets</table>
                </fieldsets>
                <results>
                    <table>webforms_results</table>
                </results>
                <results_values>
                    <table>webforms_results_values</table>
                </results_values>
            </entities>
        </webforms_mysql4>
    </models>

これらの変更により、save() を使用して 'webforms/results_values' モデルの評価を書き込んで保存できるようになりました。Mage::getModel('webforms/results_values') を使用してそのモデルのコレクションを取得すると、痕跡はありません。新しい属性 (以前の属性はすべて存在しますが、新しい属性は存在しません)。それはCollection.phpに関連するものですか、それとも何か他のものですか? これを解決するための助けはありますか?

ありがとう!ルーク

4

1 に答える 1