我一直在研究一个需要在sales_orders表中添加一些属性的模块。所以我想我会创建一个资源安装脚本并将其添加到XML中。对我来说这不是一件容易的事。说实话,我不能让它发挥作用。我已经搜索了几个小时来获得解决方案,但我还没有找到它。奇怪的是我的模块不在core_resource表...
这是我的XML。我对XML编辑有点新意。也许我犯了错误。
XML:
<config>
<global>
<modules>
<Sendcloud_Magento>
<version>0.2.0</version>
</Sendcloud_Magento>
</modules>
<helpers>
<magento>
<class>Sendcloud_Magento_Helper</class>
</magento>
</helpers>
<models>
<magento>
<class>Sendcloud_Magento_Model</class>
<resourceModel>magento_resource</resourceModel>
</magento>
<magento_mysql4>
<class>Sendcloud_Magento_Model_Mysql4</class>
</magento_mysql4>
</models>
<resources>
<!-- ... -->
<magento_setup>
<setup>
<module>Sendcloud_Magento</module>
<class>Sendcloud_Magento_Model_Resource_Mysql4_Setup</class>
</setup>
<connection>
<use>core_setup</use>
</connection>
</magento_setup>
<!-- ... -->
</resources>
</global>
<admin>
<routers>
<magento>
<use>admin</use>
<args>
<module>Sendcloud_Magento</module>
<frontName>sendcloud</frontName>
</args>
</magento>
</routers>
</admin>
<adminhtml>
<acl>
<resources>
<all>
<title>Allow Everything</title>
</all>
<admin>
<children>
<system>
<children>
<config>
<children>
<sendcloud>
<title>Sendcloud</title>
</sendcloud>
</children>
</config>
</children>
</system>
</children>
</admin>
</resources>
</acl>
<layout>
<updates>
<magento>
<file>magento.xml</file>
</magento>
</updates>
</layout>
<events>
<core_block_abstract_prepare_layout_before>
<observers>
<magento_core_block_abstract_prepare_layout_before>
<class>Sendcloud_Magento_Model_Observer</class>
<method>addMassAction</method>
</magento_core_block_abstract_prepare_layout_before>
</observers>
</core_block_abstract_prepare_layout_before>
</events>
</adminhtml>
我在我的模块中放了一个安装程序脚本。路径 /local/Sendcloud/Magento/sql/magento_setup/mysql4-install-0.2.0.php
echo 'Running This Upgrade: '.get_class($this)."\n <br /> \n";
die("Exit for now");
我有一个模型 Sendcloud / Magento的/型号/资源/ Mysql4 / Setup.php
class Sendcloud_Magento_Model_Resource_Mysql4_Setup extends Mage_Core_Model_Resource_Setup {
}
我希望你们中的一些人能够解决我的问题。
祝福和新年快乐,
保
答案 0 :(得分:1)
所以现在你需要将版本从0.2.0更新到0.3.0,试试这个
应用\代码\本地\ Sendcloud \ Magento的\等\ config.xml中强>
<?xml version="3.0"?>
<config>
<modules>
<Sendcloud_Magento>
<version>0.3.0</version>
</Sendcloud_Magento>
</modules>
<frontend>
<routers>
<magento>
<use>standard</use>
<args>
<module>Sendcloud_Magento</module>
<frontName>magento</frontName>
</args>
</magento>
</routers>
</frontend>
<global>
<models>
<magento>
<class>Sendcloud_Magento_Model</class>
<resourceModel>magento_mysql4</resourceModel>
</magento>
<magento_mysql4>
<class>Sendcloud_Magento_Model_Mysql4</class>
<entities>
<magento>
<table>magento</table>
</magento>
</entities>
</magento_mysql4>
</models>
<resources>
<magento_setup>
<setup>
<module>Sendcloud_Magento</module>
</setup>
<connection>
<use>core_setup</use>
</connection>
</magento_setup>
<magento_write>
<connection>
<use>core_write</use>
</connection>
</magento_write>
<magento_read>
<connection>
<use>core_read</use>
</connection>
</magento_read>
</resources>
</global>
</config>
应用\代码\本地\ Sendcloud \ Magento的\模型\ Magento.php 强>
class Sendcloud_Magento_Model_Magento extends Mage_Core_Model_Abstract
{
public function _construct()
{
parent::_construct();
$this->_init('magento/magento');
}
}
应用\代码\本地\ Sendcloud \ Magento的\模型\ Mysql4 \ Magento.php 强>
class Sendcloud_Magento_Model_Mysql4_Magento extends Mage_Core_Model_Mysql4_Abstract
{
public function _construct()
{
// Note that the magento_id refers to the key field in your database table.
$this->_init('magento/magento', 'magento_id');
}
}
应用\代码\本地\ Sendcloud \ Magento的\模型\ Mysql4 \ Magento的\ Collection.php 强>
class Sendcloud_Magento_Model_Mysql4_Magento_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
{
public function _construct()
{
parent::_construct();
$this->_init('magento/magento');
}
}
应用\代码\本地\ Sendcloud \ Magento的\ SQL \ magento_setup \ mysql4升级-0.2.0-0.3.0.php 强>
$installer = $this;
$installer->startSetup();
$installer->addAttribute(
));
$installer->endSetup();
应用\等\模块\ Sendcloud_Magento.xml 强>
<?xml version="1.0"?>
<config>
<modules>
<Sendcloud_Magento>
<active>true</active>
<codePool>local</codePool>
</Sendcloud_Magento>
</modules>
</config>
答案 1 :(得分:0)
您是否通过在app / etc / modules /?中添加另一个XML文件来激活模型?