在Magento中用getModel和getData方法来获取东西
如果你正在Magento中开发,迟早有一天你会需要从数据库中获取信息。这篇文章将会给你展示用getModel,getData和getter方法获取几乎任何东西。
例如:假设你正在尝试找出产品名字,描述和价格。首先你要做的就是获取产品模型:
$productModel = Mage::getModel('catalog/product');
通过调用getModel('catalog/product'),你将Mage_Catalog_Model_Product类(定义在app/code/core/Mage/Catalog/Model/Product.php)实例化。但是Magento如何知道这个类在哪呢?
参数‘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开始的模块都被定义在Model文件夹下。参数‘catalog/product’的第二部分告诉Magento定义类的文件。在这里,是Product.php。
现在,我们有了对的模型,下一步就是告诉我们的模块,哪个产品要被读取。用load($id)方法很容易实现。
$product = $productModel->load(42);
注意,这里的42只是个id的例子,应该被你需要读取的产品id替换。
在读取我们的产品之后,这里有两种方法从对象里读取数据。
$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变量在这里是经过价格规则处理后的价格。
电商网站开发服务。
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。
上一篇:Magento中的畅销产品 下一篇:根据多个ID筛选订单网格