在Magento中用getModel和getData方法来获取东西

redmaomail 2024-07-24 18:12 阅读数 66 #Magento

红帽云邮外贸主机

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

电商网站开发服务


红帽云邮外贸主机

分享到:
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。
    红帽云邮外贸主机
热门
    红帽云邮外贸主机
    红帽云邮外贸主机