自定义模块中的多表访问

Posted

技术标签:

【中文标题】自定义模块中的多表访问【英文标题】:Multiple table access in a custom module 【发布时间】:2012-02-24 05:31:06 【问题描述】:

我是 Magento 的新手。我的自定义模块中需要两个表,我必须加载两个表作为单独的集合,即Mage::getModel('mymodule/model1')->getcollection()Mage::getModel('mymodule/model2')->getcollection()

我已点击此处发布的链接Magento - possible to have multiple tables for a single model?,但我被卡住了。我创建了两个模型类“model1”和“model2”,并在“mysql4”下创建了相同的模型,我的第一个模型工作正常,但如果我访问第二个模型就无法正常工作。

如何在一个模块中使用多个表? 提前致谢。


这是我的 config.xml

<models>
    <module>
        <class>Package_Module_Model</class>
        <resourceModel>module_mysql4</resourceModel>
    </module>
    <module_type1>
        <class>Package_Module_Model_Type1</class>
        <resourceModel>module_mysql4</resourceModel>
    </module_type1>
    <module_mysql4>
        <class>Package_Module_Model_Mysql4</class>
        <entities>
            <module>
                <table>table1</table>
            </module>
            <module_type1>
                <table>table2</table>
            </module_type1>
        </entities>
    </module_mysql4>

【问题讨论】:

是的,当然。你在模型的 _init 方法中使用了什么? 我认为您的资源模型或其调用存在问题 像 $this->_init('mymodule/model2'); 我在 mysql4 文件夹下也为第二个创建了资源模型 资源模型中的init方法呢? 【参考方案1】:

你只有一个模块,所以只需要一个模块声明:

<models>
    <module>
        <class>Package_Module_Model</class>
        <resourceModel>module_mysql4</resourceModel>
    </module>
    <module_mysql4>
        <class>Package_Module_Model_Mysql4</class>
        <entities>
            <model1>
                <table>table1</table>
            </model1>
            <model2>
                <table>table2</table>
            </model2>
        </entities>
    </module_mysql4>
</models>

这里有多个模型在一个模块的entities列表中。

【讨论】:

【参考方案2】:

你能试试这个吗:

<models> 
    <module> 
        <class>Package_Module_Model</class> 
        <resourceModel>module_mysql4</resourceModel>
    </module>
    <module_type1> 
        <class>Package_Module_Model_Type1</class> 
        <resourceModel>module_mysql4_type1</resourceModel> 
    </module_type1> 
    <module_mysql4> 
        <class>Package_Module_Model_Mysql4</class> 
        <entities> 
            <module> 
                <table>table1</table> 
            </module> 
        </entities> 
    </module_mysql4> 
    <module_mysql4_type1> 
        <class>Package_Module_Model_Mysql4_Type1</class> 
        <entities> 
            <module_type1> 
                <table>table2</table> 
            </module_type1> 
        </entities> 
    </module_mysql4_type1> 
</models>

【讨论】:

以上是关于自定义模块中的多表访问的主要内容,如果未能解决你的问题,请参考以下文章

matlab R2010b中simulink自带的多径瑞利衰落信道模块的 sample time好像无法自定义,有可能更改吗

自定义模块仅允许Magento 1.9中的完全管理员权限

自定义 Magento 模块

打开自定义认证模块访问http会话

创建UI以管理Kentico中自定义模块中的多个类之间的关系

如何从colab中的另一个python模块调用自定义模块