📅  最后修改于: 2023-12-03 14:44:06.796000             🧑  作者: Mango
Magento 2 是一款流行的开源电商系统,提供丰富的 API 来操作数据库。本文将介绍如何使用 PHP 获取集合(collection)。
在 Magento 中,集合是指一组相关对象的集合。据此可开发一些常见的功能,如从数据库中检索数据、筛选和排序数据、以及执行各种操作。
在 Magento 2 中,可以使用 \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection
类来获取集合。
首先,需要引入要使用的类:
use Magento\Framework\App\ObjectManager;
use Magento\Framework\View\Element\Template;
$objectManager = ObjectManager::getInstance();
$collection = $objectManager->create('Magento\Catalog\Model\ResourceModel\Product\Collection');
接下来,可以对集合进行筛选和排序操作:
$collection->addFieldToFilter('status', \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED);
$collection->addAttributeToSelect(['name', 'price', 'image']);
$collection->setPageSize(10);
$collection->setCurPage(1);
$collection->setOrder('entity_id', 'DESC');
其中,addFieldToFilter()
方法可以添加筛选器,指定要检索的字段名称和条件。在这种情况下,我们添加了一个条件,仅返回已启用的产品。addAttributeToSelect()
方法可以选择要返回的属性列表。setPageSize()
和 setCurPage()
方法可用于分页操作。setOrder()
方法则指定排序方法。
最后,我们可以使用 load()
方法加载集合:
$collection->load();
现在,$collection
变量包含加载的所有产品。截取前 10 个结果:
foreach ($collection as $product) {
echo $product->getName() . " (" . $product->getPrice() . ")" . PHP_EOL;
}
输出结果将为:
My Product 8 ($15.00)
My Product 7 ($15.00)
My Product 6 ($15.00)
My Product 5 ($15.00)
My Product 4 ($15.00)
My Product 3 ($15.00)
My Product 2 ($15.00)
My Product 1 ($15.00)
以上介绍了如何在 Magento 2 中使用 PHP 获取集合。可以使用 addFieldToFilter()
方法来添加筛选器,使用 addAttributeToSelect()
方法选择要返回的属性,使用 setPageSize()
和 setCurPage()
方法进行分页操作,使用 setOrder()
方法指定排序方法。最后,使用 load()
方法加载集合。