Lorsque vous bloquez ou modélisez des fichiers, vous devez initialiser la ressource, puis vous devez appeler la connexion
C'est
protected $_resource;
et
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Framework\App\Resource $resource,
array $data = []
) {
$this->_resource = $resource;
parent::__construct($context, $data);
}
pour la connexion
protected function getConnection()
{
if (!$this->connection) {
$this->connection = $this->_resource->getConnection('core_write');
}
return $this->connection;
}
ci-dessous est un exemple dans le fichier de blocage
<?php
/**[email protected]*/
namespace Sugarcode\Test\Block;
class Joinex extends \Magento\Framework\View\Element\Template
{
protected $_coreRegistry = null;
protected $_orderCollectionFactory = null;
protected $connection;
protected $_resource;
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Framework\Registry $registry,
\Magento\Framework\App\Resource $resource,
\Magento\Sales\Model\Resource\Order\CollectionFactory $orderCollectionFactory,
array $data = []
) {
$this->_orderCollectionFactory = $orderCollectionFactory;
$this->_coreRegistry = $registry;
$this->_resource = $resource;
parent::__construct($context, $data);
}
public function _prepareLayout()
{
return parent::_prepareLayout();
}
protected function getConnection()
{
if (!$this->connection) {
$this->connection = $this->_resource->getConnection('core_write');
}
return $this->connection;
}
public function getDirectQuery()
{
$table=$this->_resource->getTableName('catalog_product_entity');
$sku = $this->getConnection()->fetchRow('SELECT sku,entity_id FROM ' . $table);
return $sku;
}
public function getJoinLeft()
{
$orders = $this->_orderCollectionFactory->create();
$orders->getSelect()->joinLeft(
['oce' => 'customer_entity'],
"main_table.customer_id = oce.entity_id",
[
'CONCAT(oce.firstname," ", oce.lastname) as customer_name',
'oce.firstname',
'oce.lastname',
'oce.email'
]
);
//$orders->getSelect()->__toString(); $orders->printlogquery(true); exit;
return $orders;
}
}
\Magento\Framework\App\Resource
n'existe pas (du moins pas en 2.1.3). Tu ne veux pas direResourceConnection
?vous avez utilisé l'ancien appel pour la version bêta core_write et core_read dans rc est comme ceci:
obtenir l'adaptateur:
obtenez la table et sélectionnez:
cours complet d' ici
la source
J'ai réalisé cela de la manière suivante. J'ai un fichier personnalisé où j'en crée un objet et cela a fonctionné. Vérifiez-le une fois.
Essayez de me faire savoir si cela fonctionne pour vous.
la source
Ne fonctionne pas pour moi :(
Voici mon fichier de blocage:
J'obtiens cette erreur: L'objet DOMDocument doit être créé.
Qu'est-ce que je rate?
la source
la source
Test\Vendor\Model\VendorFactory
ouTest\Vendor\Model\Vendor\Collection
.essaye celui-là :
la source
la source