I am writing an admin module. I created a collection and if the number of rows in the table are small it loads fine. Ultimately the table will have 250k rows in it and when I attempt to load the collection it exhausts memory. I was under the impression that Magento would lazy load collections. I also will probably need to know how to use the resource iterator in mage 2 as well. I can provide code samples but there is little more than a basic module skeleton at this point. I would greatly appreciate a code example of how to handle and iterate through a large collection.
Note: the collection is pulling from a custom table
Controller:`<?php namespace Corra\Corraimportexport\Controller\Adminhtml\Import;
use Magento\Backend\App\Action; use Magento\Backend\App\Action\Context; use Corra\Corraimportexport\Model\WebcustomersFactory;
class Index extends \Magento\Backend\App\Action {
protected $_modelWebcustomersFactory;
public function __construct(
Context $context,
WebcustomersFactory $modelWebcustomersFactory
) {
parent::__construct($context);
$this->_modelWebcustomersFactory = $modelWebcustomersFactory;
}
public function execute()
{
$webcustomersModel = $this->_modelWebcustomersFactory->create();
// Load the item with ID is 1
/*$item = $webcustomersModel->load(976);
var_dump($item->getData());*/
// Get webcustomers collection
$webcustomersCollection = $webcustomersModel->getCollection();
var_dump($webcustomersCollection->count());
die();
// Load all data of collection
foreach ($webcustomersModel->getCollection() as $key => $webcustomer) {
var_dump($webcustomer->getData());
die();
}
$this->_view->loadLayout();
$this->_view->renderLayout();
}
}
_init('Corra\Corraimportexport\Model\ResourceModel\Webcustomers'); } } _init('web_customers', 'entity_id'); } } _init( 'Corra\Corraimportexport\Model\Webcustomers', 'Corra\Corraimportexport\Model\ResourceModel\Webcustomers' ); } }`