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

问题描述 投票:0回答:3

我正在编写一个 Magento 扩展,但我无法让它显示在核心资源表中。我相信我正确地声明了我的配置的资源部分。为什么我的扩展在资源表中不可见?

<?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>
magento resources
3个回答
4
投票

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

"mysql4-install-0.1.0.php", 

但是您的起始模块版本是

"<version>0.2.0</version>"  

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

"<version>0.1.0</version>"

或将安装程序文件更改为

"mysql4-install-0.2.0.php".  

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

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


2
投票

我遇到了同样的问题,花了我一周的时间(或者让我损失了一周!!!)来找出原因,而且非常简单。

检查文件和文件夹权限。它们可能受到限制,将新扩展的文件和目录更改为读写,它将立即起作用。毕竟和缓存没有任何关系!!!


0
投票

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

其次,检查您是否能够访问块和助手。如果没有,可能是你的

app\etc\modules\CTRL_Analytics.xml
有问题。该模块是否显示在管理中的“系统”>“配置”>“高级”下?

第三,您的

sql\analytics_setup\mysql4-install-0.1.0.php
sql\analytics_setup\mysql4-upgrade-0.1.0-0.2.0.php
的命名和编码是否正确。我发现 mysql 升级命名约定过去曾困扰过很多人。

最后,尝试将服务器置于调试状态并在

mysql4-install-0.1.0.php
内设置断点以检查文件是否真正被执行。它可能会尝试运行,但会因 SQL 错误而默默失败(讨厌这样!)。

希望其中之一有帮助! 京东

© www.soinside.com 2019 - 2024. All rights reserved.