php - 如何获取magento表名

标签 php sql magento module installation

我有这个全局配置:

<global>
    <models>
    <subscriber>
        <class>Giftlab_Subscriber_Model</class>
        <resourceModel>subscriber_resource</resourceModel>
    </subscriber>
    <subscriber_resource>
        <class>Giftlab_Subscriber_Model_Resource</class>
        <entities>
            <records>
                <table>subscriber_records</table>
            </records>
        </entities>
    </subscriber_resource>
    </models>
    <resources>
        <giftlab_subscriber_write>
            <connection>
                <use>core_write</use>
            </connection>
        </giftlab_subscriber_write>
        <giftlab_subscriber_read>
            <connection>
                <use>core_read</use>
            </connection>
        </giftlab_subscriber_read>
        <giftlab_subscriber_setup>
            <setup>
                <module>Giftlab_Subscriber</module>
                <class>Giftlab_Subscriber_Model_Resource_Setup</class>
            </setup>
            <connection>
                <use>core_setup</use>
            </connection>
        </giftlab_subscriber_setup>
    </resources>
</global>

在我的 mysql4-install-0.1.0.php 文件中,我需要获取表名。我该怎么做? 我知道是这样的:

$this->getTable('subscriber_resource/records')

但这只会产生异常 Can't retrieve entity config: subscriber_resource/records。我需要做什么来检索表名?

最佳答案

我自己想出了答案,尽管感谢@Yaroslav 将我引导至 Alan Storm 的教程,因为这对我有所帮助。

答案是,我需要这个:

$this->getTable('subscriber/records');

其中“subscriber”是模型配置条目的名称(不是资源),“records”是实体。事实证明,当 magento 解析 thinga/thingb 时,它总是假定斜线前的 thinga 是模型并通过在配置中查找 <thinga><resourceModel>{resourcemodel} 来取消引用以获取资源。 , 然后再次寻找 <{resourcemodel}><entities><thingb><table>获取表名。

所以我的配置是正确的,我只是对模型和资源的概念感到困惑。希望这可以帮助其他人陷入同样的​​问题 - 我在各种教程中找不到任何关于此的明确信息。

关于php - 如何获取magento表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15137959/

相关文章:

php - Magento - 从 Magento 导航菜单中删除 +(加号)

php - Zend 框架 2 : Catch all route and url escape

php - 无法从 jQuery DataTables 内触发模式

php - 在 CodeIgniter 中跨不同文件重用函数的正确方法是什么?

mysql - 什么是正确的 MySql FULL JOIN 语法?

php - Magento 学习曲线和最佳技巧

php - 将数据添加到 MySQL 并出现 fatal error - Magento

php - 如何自定义 Zend_Tool 输出?

MySQL 按事件选择第一个出现的组

MySQL:子查询(基本)