Magento 2でコレクションを取得する方法


  1. モデルを使用してコレクションを取得する方法:
<?php
use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory;
class ExampleClass
{
    protected $productCollectionFactory;

    public function __construct(CollectionFactory $productCollectionFactory)
    {
        $this->productCollectionFactory = $productCollectionFactory;
    }

    public function getCollection()
    {
        $collection = $this->productCollectionFactory->create();
        return $collection;
    }
}
?>

上記の例では、CollectionFactoryを使用して$productCollectionFactoryをインジェクトしています。そして、create()メソッドを使用してコレクションを取得します。

  1. オブジェクトマネージャを使用してコレクションを取得する方法:
<?php
use Magento\Framework\App\ObjectManager;
class ExampleClass
{
    protected $objectManager;

    public function __construct(ObjectManager $objectManager)
    {
        $this->objectManager = $objectManager;
    }

    public function getCollection()
    {
        $collection = $this->objectManager->create('Magento\Catalog\Model\ResourceModel\Product\Collection');
        return $collection;
    }
}
?>

上記の例では、ObjectManagerを使用して$objectManagerをインジェクトしています。そして、create()メソッドを使用してコレクションを取得します。

これらは一部の基本的な方法ですが、他にもさまざまな方法があります。例えば、フィルタリング、ソート、ページングなどの操作をコレクションに適用することもできます。また、カスタムフィールドを持つEAV(Entity-Attribute-Value)エンティティに対してもコレクションを使用することができます。