如果你正在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变量在这里是经过价格规则处理后的价格。 (责任编辑:好模板) |