我有这个全局配置:
<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/