我正在尝试使用自定义模块创建自定义表。我一直关注Alan Storm's article来创建自定义表
这是我的文件夹结构
CM
Tablecreation
etc >> config.xml (has 1.6.0.0 as the version mentioned)
Helper >> Data.php
controllers >> IndexController.php
Model
Actualtable.php
Mysql4
Actualtable.php
Resource
Mysql4
Setup.php
sql
tablecreation_setup
install-1.6.0.0.php
这是我的config.xml文件。
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<CM_Tablecreation>
<version>1.6.0.0</version>
</CM_Tablecreation>
</modules>
<frontend>
<routers>
<tablecreation>
<use>standard</use>
<args>
<module>CM_Tablecreation</module>
<frontName>tablecreation</frontName>
</args>
</tablecreation>
</routers>
</frontend>
<global>
<models>
<tablecreation>
<class>CM_Tablecreation_Model</class>
<resourceModel>tablecreation_mysql4</resourceModel>
</tablecreation>
<tablecreation_mysql4>
<class>CM_Tablecreation_Model_Mysql4</class>
<entities>
<actualtable>
<table>actual_table</table>
</actualtable>
</entities>
</tablecreation_mysql4>
</models>
<resources>
<tablecreation_setup>
<setup>
<module>CM_Tablecreation</module>
<class>CM_Tablecreation_Model_Resource_Mysql4_Setup</class>
</setup>
<connection>
<use>core_setup</use>
</connection>
</tablecreation_setup>
<tablecreation_write>
<connection>
<use>core_write</use>
</connection>
</tablecreation_write>
<tablecreation_read>
<connection>
<use>core_read</use>
</connection>
</tablecreation_read>
</resources>
<helpers>
<tablecreation>
<class>CM_Tablecreation_Helper</class>
</tablecreation>
</helpers>
</global>
</config>
这是我每次都得到的错误
a:5:{i:0;s:69:"/home/dev/public_html/app/code///sql/tablecreation_setup not found";i:1;s:818:"#0 /home/dev/public_html/app/code/core/Mage/Core/Model/Resource/Setup.php(421): Mage_Core_Model_Resource_Setup->_modifyResourceDb('install', '', '1.6.0.0')
我尝试通过在app / code / core / Mage / Core / Resource / Setup.php中使用try catch和异常消息进行调试,如前面关于此主题的一些类似问题所示,但没有成功
我的模块甚至没有列在core_resource表中。即使它如何做,表肯定永远不会被创建。
我还遇到过在core_resource表中列出的情况但是如果我从表中删除了我的模块记录(再次运行安装脚本)然后尝试刷新我网站的任何页面我再次收到错误页面打开我发现相同错误的报告。
基本上我跟随网上的任何文章,我都会遇到同样的错误。请帮我解释一下这个错误以及导致它的原因。也许有人可以建议解决它的解决方案。
非常感谢提前。
答案 0 :(得分:2)
我可以看到你发布的内容有几个问题:
您的安装脚本需要调用mysql4-install-1.6.0.0.php。如果Magento找不到设置脚本,因为它的名称不正确,它将无法运行它,所以我将你的install-1.6.0.0.php重命名为mysql4-install-1.6.0.0.php。
您的config.xml文件中的global部分需要一个资源标记,如下所示:
<resources>
<tablecreation_setup>
<setup>
<module>CM_Tablecreation</module>
</setup>
<connection>
<use>core_setup</use>
</connection>
</tablecreation_setup>
</resources>
检查您的app / etc / modules.CM_Tablecreation.xml文件。您发布的错误消息很有趣,因为它尝试找到安装文件的路径中缺少代码池和模块名称。检查您的xml文件是否有配置&gt;模块&gt; YourModule_NameHere&gt; codePool标记(注意带有大写字母P的codePool),其中包含字符串“core”,“community”或“local”,具体取决于模块所在的位置。
您可以在my previous answer to a similar question和Alan Storm's definitive answer上找到有关此主题的一些帮助。
PS:您的扩展版本不需要与Magento本身相同的版本号。只需从任何版本号开始,让您满意并根据需要增加。