【发布时间】:2014-11-19 14:11:09
【问题描述】:
我正在按照 Magento 的官方指南和《Magento PHP 开发人员指南》一书为 Magento 开发新闻扩展。
书中有注册实体、项目和类型——我认为这将是未来将类别添加到新闻扩展中的一个好习惯。现在我只有一个 Item 表,其中只有新闻项目。
根据本书,我创建了文件夹结构并将文件放置如下:
-Model
--Mysql4
---Item
----Collection.php
---Item.php
--Resource
----Setup.php
--Item.php
在官方指南中有:
-Model
--Resource
---Item
----Collection.php
---Item.php
--Item.php
- 这两者有什么区别?他们都是 EAV 吗?
我已经按照本书设置了所有内容(安装程序脚本),并且运行良好。 现在我有了控制器、块和模板文件,我正在尝试显示数据库中的数据。
我的 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 文件中。我实际上应该结束这个prepareForList() 来传递currentPage 的变量
问题:
都不适合我。它没有从数据库中得到任何结果。当我使用prepareForList() 时,它说它不是对象
书中也有
<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() 我试图获取数据但没有返回任何内容:
$blogpost = Mage::getModel('gott_news/item')->getCollection();
我应该怎么做才能让它工作???
【问题讨论】:
标签: php magento magento-1.7 magento-1.8