西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > magento教程 >

Magento中用getModel和getData方法来获取产品

时间:2017-01-14 18:03来源:未知 作者:好模板 点击:
如果你正在Magento中开发,迟早有一天你会需要从数据库中获取信息。这篇文章将会给你展示用getModel,getData和getter方法获取几乎任何东西。 例如:假设你正在尝试找出产品名字,描述和

如果你正在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变量在这里是经过价格规则处理后的价格。

(责任编辑:好模板)
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容