首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Magento -自定义模型

Magento -自定义模型
EN

Stack Overflow用户
提问于 2012-06-11 23:48:05
回答 1查看 1K关注 0票数 0

我使用免费的magento扩展(WebForms)进行自定义调查,因此我安装并修改了它。Extension的模型没有使用EAV,这里有涉及到的表:

代码语言:javascript
复制
| 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)、字段(映射webforms_fields)、字段集(映射webforms_fieldsets)、结果(映射webforms_results)。现在webforms_results_values没有映射到模型上,我需要轻松地操作我的自定义属性,因此我进行了以下更改:

//在WebForms/Model上添加了一个名为Results的目录,其中有一个扩展公共函数的文件(app/code/local/Custom/WebForms/Model/Results/Values.php Values.php Custom_WebForms_Model_Results_Values { Mage_Core_Model_Abstract _construct() { parent::_construct();$this->_init('webforms/results_values');}}

代码语言:javascript
复制
//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的部分:

代码语言:javascript
复制
    <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/result_values”模型上编写和保存评级,当我使用Mage::getModel(‘webforms/result_values’)检索该模型的集合时,没有新属性的踪迹(所有以前的属性都存在,但没有新的属性)。它是与Collection.php相关的还是其他什么?对解决这个问题有什么帮助吗?

谢谢!LuKe

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-12 17:20:07

尝试删除var/cache文件夹。

Magento缓存表描述。所以,如果你正确地添加了字段,magento就不知道它们是否存在。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10983453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档