gpt4 book ai didi

php - 如何覆盖 Magento 模型中的表名和前缀?

转载 作者:行者123 更新时间:2023-11-29 03:47:05 26 4
gpt4 key购买 nike

我需要让 Magento 将数据读/写到现有的数据库表中,以便与另一方系统集成。无法重命名该表。如果我在模型配置的表标签中指定它,如下所示,magento 添加前缀。有没有办法以某种方式覆盖前缀?

   <models>
<arithmetic>
<class>Mcmr_Arithmetic_Model</class>
<resourceModel>arithmetic_mysql4</resourceModel>
</arithmetic>
<arithmetic_mysql4>
<class>Mcmr_Arithmetic_Model_Mysql4</class>
<entities>
<arithmetic>
<table>newslettersignups</table>
</arithmetic>
</entities>
</arithmetic_mysql4>
</models>

最佳答案

没有一种简单的方法可以做到这一点。

最好的解决方案是扩展配置文件:

<models>
<arithmetic>
<class>Mcmr_Arithmetic_Model</class>
<resourceModel>arithmetic_mysql4</resourceModel>
</arithmetic>
<arithmetic_mysql4>
<class>Mcmr_Arithmetic_Model_Mysql4</class>
<entities>
<arithmetic>
<ignore_prefix>1</ignore_prefix>
<table>newslettersignups</table>
</arithmetic>
</entities>
</arithmetic_mysql4>
</models>

然后您可以覆盖 Mage_Core_Model_Resource 类的 getTableName 方法,使其考虑实体的附加配置属性“ignore_prefix”。

if ($mappedTableName) {
$tableName = $mappedTableName;
} else {
if($entityConfig->ignore_prefix)
$tablePrefix = '';
else
$tablePrefix = (string)Mage::getConfig()->getTablePrefix();
$tableName = $tablePrefix . $tableName;
}

关于php - 如何覆盖 Magento 模型中的表名和前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2417134/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com