Коллекции являются важной частью разработки Magento 2, позволяя вам извлекать наборы данных из базы данных и манипулировать ими. В этой статье мы рассмотрим различные методы установки и выбора коллекций в Magento 2, а также приведем примеры кода, демонстрирующие их использование.
-
Метод: использование ResourceModel
use Vendor\Module\Model\ResourceModel\CustomModel\CollectionFactory; ... $collection = $this->collectionFactory->create();В этом методе мы используем ResourceModel для создания коллекции для пользовательской модели. Замените
Vendor\Module\Model\ResourceModel\CustomModelсоответствующим пространством имен и именем класса для вашей пользовательской модели. -
Метод: использование диспетчера объектов
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $collection = $objectManager->create('Vendor\Module\Model\ResourceModel\CustomModel\Collection');Хотя подход с использованием диспетчера объектов обычно не рекомендуется, его можно использовать для быстрого создания экземпляра коллекции. Замените
Vendor\Module\Model\ResourceModel\CustomModelпространством имен и именем класса вашей пользовательской модели. -
Метод: использование внедрения зависимостей (DI)
use Vendor\Module\Model\ResourceModel\CustomModel\CollectionFactory; ... public function __construct( CollectionFactory $collectionFactory ) { $this->collectionFactory = $collectionFactory; } ... $collection = $this->collectionFactory->create();Используя DI, мы можем внедрить фабрику коллекций в наш класс и создать экземпляр коллекции. Обязательно обновите пространство имен и имя класса соответствующим образом.
-
Метод: фильтрация и сортировка
$collection->addFieldToFilter('status', ['eq' => 1]) ->addAttributeToSort('name', 'ASC');В этом фрагменте кода показано, как фильтровать коллекцию на основе определенного значения атрибута («статус» в этом примере) и сортировать ее по другому атрибуту («имя» в данном случае).
В этой статье мы рассмотрели несколько методов настройки и выбора коллекций в Magento 2. Мы рассмотрели использование подходов ResourceModel, Object Manager и Dependency Injection, а также примеры кода для каждого метода. Используя эти методы, вы можете эффективно работать с коллекциями в своих проектах Magento 2, обеспечивая эффективный поиск и обработку данных.