Magento 1.6.2在自定义eav实体设置期间调用createEntityTables时获得了双重前缀

时间:2013-06-08 02:19:26

标签: magento

跟随Alan Storm的教程,我在调用createEntityTables()方法时遇到了一些问题。我的脚本就像:

$installer->createEntityTables(
    $this->getTable('complexworld/eavblogpost')
);

我已经解决了与BLOB / TEXT Mysql错误相关的问题,但是发生了另一个问题。我创建的表有双重前缀(“mgt_”是前缀),

mgt_mgt_eavblog_posts
mgt_mgt_eavblog_posts_char
mgt_mgt_eavblog_posts_datetime
mgt_mgt_eavblog_posts_decimal
mgt_mgt_eavblog_posts_int
mgt_mgt_eavblog_posts_text
mgt_mgt_eavblog_posts_varchar

试图挖掘createEntityTables()方法,而我打印$ this-> getTable($ baseTableName),

if (!$isNoCreateMainTable) {
        /**
         * Create table main eav table
         */
        echo $this->getTable($baseTableName);
        exit;
        $connection = $this->getConnection();

我在屏幕上显示“mgt_mgt_eavblog_posts”,这意味着核心方法可能在表名中添加了额外的前缀。知道这里出了什么问题吗?我非常感谢您的帮助!

1 个答案:

答案 0 :(得分:5)

$ table = strtolower(substr(ltrim($ this-> getTable('complexworld / eavblogpost')),strlen(Mage :: getConfig() - > getTablePrefix())));

$ installer-> createEntityTables($表);