我正在根据Magento的官方指南开发Magento的新闻扩展,并预订“Magento PHP开发人员指南”。
在书中有注册表实体,项目和类型 - 我认为这将是一个很好的做法,以便将来可能的类别添加到新闻扩展。现在我只有Item表,其中只有新闻项目。
根据这本书我创建了文件夹结构并放置了我的文件:
-Model
--Mysql4
---Item
----Collection.php
---Item.php
--Resource
----Setup.php
--Item.php
在官方指南中有:
-Model
--Resource
---Item
----Collection.php
---Item.php
--Item.php
我已按照本书设置了所有内容(安装程序脚本)并且工作正常。 现在我有Controller,Block和模板文件,我正在尝试显示数据库中的数据。
我的config.xml如下所示:
<global>
<models>
<gott_news>
<class>Gott_News_Model</class>
<resourceModel>gott_news_mysql4</resourceModel>
</gott_news>
<gott_news_mysql4>
<entities>
<item>
<table>gott_news_item</table>
</item>
</entities>
</gott_news_mysql4>
</models>
<resources>
<gott_news_setup>
<setup>
<module>Gott_News</module>
<class>Gott_News_Model_Resource_Setup</class>
</setup>
</gott_news_setup>
</resources>
在本书之后,它会从DB中检索数据:
$collection = Mage::getModel('gott_news/item')->getCollection();
指南是这样做的:
$newsCollection = Mage::getResourceModel('gott_news/item_collection');
$newsCollection->prepareForList($this->getCurrentPage);
这个prepareForList()函数位于Collection.php文件中。实际上我应该以{{1}}结尾传递prepareForList()
问题:
对我来说都不适用。它没有从DB获得任何结果。当我使用currentPage
时,它说它是非对象的
在书中,还有
prepareForList()
是否需要从DB获取数据?
在 <resources>
<mdg_giftregistry_setup>
<setup>
<module>Mdg_Giftregistry</module>
<class>Mdg_Giftregistry_Model_Resource_Setup</class>
</setup>
<connection>
<use>core_setup</use>
</connection>
</mdg_giftregistry_setup>
<mdg_giftregistry_write>
<connection>
<use>core_write</use>
</connection>
</mdg_giftregistry_write>
<mdg_giftregistry_read>
<connection>
<use>core_read</use>
</connection>
</mdg_giftregistry_read>
</resources>
我试图获取数据但没有返回任何内容:
indexController.php indexAction()
我该怎么做才能让它发挥作用
答案 0 :(得分:0)
之前我遇到过同样的问题,似乎当ressources是现在使用的时候,mysql4调用是旧方式。 我使用类似的东西,它工作得很好。我不知道它是否与1.7之前的版本兼容
<models>
<gottnews>
<class>Gott_News_Model</class>
<resourceModel>gottnews_resource</resourceModel>
</gottnews>
<gottnews_resource>
<class>Gott_News_Model_Resource</class>
<entities>
<item>
<table>gott_news</table>
</item>
</entities>
</gottnews_resource>
</models>
<resources>
<gott_news_setup>
<setup>
<module>Gott_News</module>
<class>Mage_Core_Model_Resource_Setup</class>
</setup>
<connection>
<use>core_setup</use>
</connection>
</gott_news_setup>
<gottnews_write>
<connection>
<use>core_write</use>
</connection>
</gottnews_write>
<gottnews_read>
<connection>
<use>core_read</use>
</connection>
</gottnews_read>
</resources>
在表core_ressource中,您需要找到模块的名称及其版本。如果不是,则安装脚本无法正常运行,如果您在magento中激活了日志记录,则需要检查var / log /以获取更多信息。如果是,但您需要再次运行设置,请删除该行。