Magento中getModel与getData方法结合使用获取信息
2017-11-05 10:55
393 查看
相信很多和我一样新接触magento的新手,在做项目的时候会经常遇到需要从数据库中获取一些信息的情况,可能刚接触的童鞋还不太熟练或者不太了解,那么本文将向您展示如何使用getModel,getData和getter方法检索几乎任何内容。 例如,假设您正在尝试检索产品名称,描述和价格等操作。首先你需要做的是获得产品型号:
通过调用
参数’catalog/product’的第一部分来自模块配置,通常和模块文件夹的名称相同。在app/code/core/Mage/Catalog/etc/config.xml,你会看到:
从这里,您可以看到所有名称以Mage_Catalog_Model开头的模型都在此模块的“模型”文件夹中定义。’catalog/product’的第二部分是告诉Magento在哪个文件中定义了类。在这种情况下,它是Product.php
现在我们有正确的模型,下一步是告诉我们的模型,应该加载哪个产品。这可以通过load($id)方法轻松完成:
在这里的
基本所有的Magento模型都有个方法叫getCollection ,默认情况下它会返回系统中所有的数据。Magento的数据收集器Collection包含很多复杂的逻辑来处理数据,无论是否使用索引或缓存、EAV表等。
现在我们已经加载了我们想要的产品,有两种从对象中检索数据的方法:
这两种方法都可以得到您想要的产品的相关属性的信息。但是,就价格而言,就有点不同:
如果我们的产品属于任何价格规则,这两个变量将具有不同的含义。变量
这就是我总结的一些关于getModel,getData和getter方法检索几乎任何内容的方法,如果有哪里表述不对或者有更好的方法的话欢迎大家提建议,分享!
$productModel = Mage::getModel('catalog/product');
通过调用
getModel('catalog / product'),您将获得在
app/code/core/Mage/Catalog/Model/Product.php中定义的
Mage_Catalog_Model_Product类的实例。但是,Magento如何去准确的寻找所需要的class呢?
参数’catalog/product’的第一部分来自模块配置,通常和模块文件夹的名称相同。在app/code/core/Mage/Catalog/etc/config.xml,你会看到:
<config> … <global> <models> <catalog> <class>Mage_Catalog_Model</class> … </catalog> … </models> … </global> … </config>
从这里,您可以看到所有名称以Mage_Catalog_Model开头的模型都在此模块的“模型”文件夹中定义。’catalog/product’的第二部分是告诉Magento在哪个文件中定义了类。在这种情况下,它是Product.php
现在我们有正确的模型,下一步是告诉我们的模型,应该加载哪个产品。这可以通过load($id)方法轻松完成:
$product = $productModel->load($id);
在这里的
$id的位置您可以替换成你想要加载的产品的id。这里面使用load($id)查询的是对应ID的产品的相关信息,如果想要搜寻更多商品的信息可以使用”模型数据收集器(Model Collections)”如下:
$product = $productModel->getCollection();
基本所有的Magento模型都有个方法叫getCollection ,默认情况下它会返回系统中所有的数据。Magento的数据收集器Collection包含很多复杂的逻辑来处理数据,无论是否使用索引或缓存、EAV表等。
现在我们已经加载了我们想要的产品,有两种从对象中检索数据的方法:
$name = $product->getName(); //same as $product->getData('name');检索单个属性的值 $description = $product->getData('description'); // same as $product->getDescription();检索所有属性的值
这两种方法都可以得到您想要的产品的相关属性的信息。但是,就价格而言,就有点不同:
$price = $product->getPrice(); // same as $product->getData('price'); $finalPrice = $product->getFinalPrice();
如果我们的产品属于任何价格规则,这两个变量将具有不同的含义。变量
$price将具有产品基准价格,当您编辑产品时,管理可见。而变量
$ finalPrice将具有处理价格规则的价格,是经过处理规则得到的价格,可以作为一些应用价格来做一些处理操作时使用。
这就是我总结的一些关于getModel,getData和getter方法检索几乎任何内容的方法,如果有哪里表述不对或者有更好的方法的话欢迎大家提建议,分享!
相关文章推荐
- 使用getCurrentPosition方法实时获取当前Geolocation信息(附源码文件)--html5、JavaScript
- php 使用$_GET获取信息为空时,报错解决方法
- ubutunt中apt-get和dpkg结合使用完全清除软件包及依赖信息方法
- VC中GetLastError()获取错误信息的使用
- 总结!使用virConnectGetHostname()获取相关信息!RO~ 3ff8
- 分享 silverlight oob模式下, 获取本地打印机信息类 和 使用方法
- DMP文件的生成和使用(转),由于须要取得用户出现问题的信息,所以须要取得demp信息,可以通过本方法获取。
- 使用GetAdaptersInfo获取本地IP信息
- php 获取远程服务器信息 get_headers 的使用
- 使用CreateToolhelp32Snapshot获取指定进程详细信息的方法
- 使用GetLogicalProcessorInformation获取逻辑处理器的详细信息(NUMA节点数、物理CPU数、CPU核心数、逻辑CPU数、各级Cache)
- 使用ShellClass获取文件属性详细信息的实现方法
- Request获取URL各种信息的方法及Request.UrlReferrer的使用
- 当file_get_contents获取不到网页内容时,以下方法可使用
- jquery之管理包装元素集合(从包装集获取元素,get()方法与index()方法的使用)
- 使用GetLogicalProcessorInformation获取逻辑处理器的详细信息(NUMA节点数、物理CPU数、CPU核心数、逻辑CPU数、各级Cache)
- jquery之管理包装元素集合(从包装集获取元素,get()方法与index()方法的使用)
- 使用GetVolumeInformation获取硬盘信息
- 获取操作系统CPU及内存使用信息的另一种方法
- 利用Uri获取返回的参数即getQueryParameter()方法的使用