Remplacement de Varien_data_collection
Question
Qu'est-ce qui remplace le Varien_Data_Collection
dans magento 2 ?Je sais que Varien_Object
a été remplacé par \Magento\Framework\DataObject
.
La solution
replacement for Varien_Data_Collection in magento 2?
Vous pouvez trouver la classe de collecte de données dans Magento 2 par your root\vendor\magento\framework\Data\Collection.php
La classe met en œuvre
\IteratorAggregate, \Countable, ArrayInterface, CollectionDataSourceInterface
J'espère que cela t'aides.
Autres conseils
Le remplacement de Varien_Data_Collection
est :
protected $_collectionFactory;
public function __construct(
\Magento\Framework\Data\CollectionFactory $collectionFactory
) {
$this->_collectionFactory = $collectionFactory;
}
public function methodName(){
$collection=$this->collectionFactory2->create();
//this line of code should written in `foreach() loop`
foreach($ArrayData as $RowData){
$varienObject = new \Magento\Framework\DataObject(); $varienObject->setData($RowData->getData());
$collection->addItem($varienObject);
// end `foreach() loop code`
}
}
Remarque : ce code est testé
Vous pouvez avoir une alternative comme celle-ci :
protected $_collectionFactory;
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Framework\Data\CollectionFactory $collectionFactory,
array $data = []
)
{
$this->_collectionFactory = $collectionFactory;
parent::__construct($context, $data);
}
$collection=$this->_collectionFactory->create();
foreach($result as $row){
$varienObject = new \Magento\Framework\DataObject();
$varienObject->setData((array)$row);
$collection->addItem($varienObject);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange