首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Magento扩展未在核心资源表中注册

Magento扩展未在核心资源表中注册
EN

Stack Overflow用户
提问于 2010-10-15 04:45:41
回答 3查看 7.3K关注 0票数 2

我正在写一个Magento扩展,我就是不能让它出现在核心资源表中。我相信我在配置中声明的资源部分是正确的。有没有人能帮我理清头绪?提前感谢!

代码语言:javascript
复制
<?xml version="1.0"?>
<config>
    <modules>
        <CTRL_Analytics>
            <version>0.2.0</version>
        </CTRL_Analytics>
    </modules>
    <global>
      <blocks>
        <analytics>
          <class>CTRL_Analytics_Block</class>
        </analytics>
      </blocks>

       <helpers>
          <analytics>
            <class>CTRL_Analytics_Helper</class>
          </analytics>
      </helpers>

      <resources>
        <analytics_setup>
            <setup>     
                <module>CTRL_Analytics</module>
            </setup>
            <connection>
                <use>core_setup</use>
            </connection>
        </analytics_setup>

        <analytics_write>
            <connection>
                <use>core_write</use>
            </connection>
        </analytics_write>

        <analytics_read>
            <connection>
                <use>core_read</use>
            </connection>
        </analytics_read>
      </resources>

    </global>
    <adminhtml>
        <menu>
          <analytics translate="title" module="analytics">
              <title>Marketing and Analytics</title>
              <sort_order>100</sort_order>
              <action>analytics/admin</action>
          </analytics>
        </menu>
    </adminhtml>
    <frontend>
        <routers>
            <CTRL_Analytics>
                <use>standard</use>
                <args>
                    <module>CTRL_Analytics</module>
                    <frontName>analytics</frontName>
                </args>
            </CTRL_Analytics>
        </routers>
    </frontend>
</config>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-15 07:46:51

查看您的XML,您正在命名安装程序文件

代码语言:javascript
复制
"mysql4-install-0.1.0.php", 

但是你的起始模块版本是

代码语言:javascript
复制
"<version>0.2.0</version>"  

尝试将您的起始版本更改为

代码语言:javascript
复制
"<version>0.1.0</version>"

或将安装程序文件更改为

代码语言:javascript
复制
"mysql4-install-0.2.0.php".  

这些文件版本号来自您的模块版本号。

我总是将一个退出或异常放入任何新的安装程序文件中,以确保PHP正在尝试加载该文件。只有在成功执行此文件后,才会将信息写出到core_resource表,退出或异常将阻止该写入。这允许您重新加载页面,并让安装程序一次又一次地运行,直到正确为止。

票数 4
EN

Stack Overflow用户

发布于 2013-05-05 07:31:02

我也有同样的问题,花了我一周的时间(或者说让我损失了一周!)找出原因,这非常简单。

检查文件和文件夹权限。它们可能是有限的,更改为读写您的新扩展的文件和目录,它将立即生效。毕竟与缓存没有任何关系!

票数 2
EN

Stack Overflow用户

发布于 2010-10-15 05:29:15

首先(我确信你已经这样做了),清除并禁用所有缓存。

其次,检查您是否能够访问Blocks和Helper。如果不是,可能是您的app\etc\modules\CTRL_Analytics.xml有问题。该模块是否显示在System>Config>Advanced下的管理中?

第三,您的sql\analytics_setup\mysql4-install-0.1.0.phpsql\analytics_setup\mysql4-upgrade-0.1.0-0.2.0.php的名称和编码是否正确。我发现mysql升级的命名约定在过去有很多人犯了错。

最后,尝试将您的服务器置于调试状态,并在mysql4-install-0.1.0.php中设置断点,以检查文件是否正在实际执行。它可能正在尝试运行,但由于SQL错误而静默失败(讨厌它!)。

希望其中的一个能有所帮助!JD

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3937396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档