首页
外贸B2C模板开发
zencart 开发
Magento开发
经典客户案例
zencart 报价
外贸主机
联系我们
 
 
首页 ::  Magento开发 ::  Magento二次开发 ::  Magento中怎样给EAV模型添加数据
 
Magento中怎样给EAV模型添加数据

  作者: Magento   |   2010-10-06     阅读次数:913     关键字:最完善的Magento二次开发


在BlogController中添加以下方法
public function eavPopulateEntriesAction() {
for($i=0;$i<10;$i++) {
$weblog2 = Mage::getModel('helloworld-eav/eavblogpost');
$weblog2->setTitle(‘This is a test ‘.$i);
$weblog2->save();
}
echo ‘Done’;
}
public function eavShowcollectionAction() {
$weblog2 = Mage::getModel(‘helloworld-eav/eavblogpost’);
$entries = $weblog2->getCollection()->addAttributeToSelect(‘title’);
$entries->load();
foreach($entries as $entry)
{
// var_dump($entry->getData());
echo ‘


‘.$entry->getTitle().’
‘;
}
echo ‘
Done
‘;
}
记得添加模型集合
class Zhlmmc_Helloworld_Model_Resource_Eav_Mysql4_Blogpost_Collection extends Mage_Eav_Model_Entity_Collection_Abstract
{
protected function _construct()
{
$this->_init(‘helloworld-eav/eavblogpost’, ‘helloworld-eav/blogpost’);
}
}
访问以下URL

http://127.0.0.1/Magento/helloworld/blog/eavPopulateEntries

你应该看到正确的输出。细心一点的话你应该发现这里有两点比较特殊。第一,“$weblog2->getCollection()->addAttributeToSelect(‘title’)”,这里的“title”是干什么的?因为EAV模型在数据库层面比较复杂,一个简单的查询都需要好多个SQL才能完成。所以在查询的时候你需要指明你想找什么,这样可以节省系统资源。不过你也可以传入“*”,表示查找所有数据。第二,为什么“$this->_init”有两个参数?在我们以前的章节中,简单模型的模型集合初始化的时候只需要传入模型的URI就可以了,为什么这里要两个参数呢?其实如果你仔细看了模型集合抽象类的代码的话,你会发现这样一段
if (is_null($resourceModel)) {
$resourceModel = $model;
}
所以其实是需要模型的URI和资源模型的URI,但是由于我们前面章节的例子,这两个URI是一样的,所以省略了第二个参数。而这里,资源模型的URI和模型的URI是不一样的,所以不能省略。
 






Magento二次开发的相关新闻


更早的新闻

 
 
 
外贸网站模板  |  关于我们  |  核心技术  |  人才招聘  |  帮助中心  |  zencart下载  |  付款方式  |  公司地图  |  联系我们


粤ICP备15004589号
深圳市迅捷网络技术有限公司 Copyright © 2004-2016 All Rights Reserved. 版权所有
总公司:深圳市龙华新区民治街道人民路中航天逸大厦A3栋15层     网址:www.zencart-cn.com  电话:0755-28107785
分公司:惠州市惠城区港惠新天地商业大厦2B栋19层 网址:www.0752web.com 电话:0752-2695554  2065565
全国服务热线:137 14307967   售后服务热线:159 19478387 客服QQ: 1512144 408079953 MSN:szsun@msn.com