首页 文章

Magento - 定制模型

提问于
浏览
0

我正在使用免费的magento扩展(WebForms)进行自定义调查,所以我已经安装并修改了它 . Extension的模型不使用EAV,涉及的表格如下:

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

我添加了三个自定义属性: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(){parent: :_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')检索该模型的集合时,没有新属性(所有previos属性都存在但不是新属性) . 它与Collection.php或其他相关的东西?有什么帮助解决这个问题?

感谢名单!卢克

1 回答

  • 0

    尝试删除var / cache文件夹 .
    Magento缓存表格描述 . 因此,如果你添加了正确的字段,magento不知道它们是否存在 .

相关问题