En el caso de que bloquee o modele archivos, debe inicializar el recurso y luego debe llamar a la conexión
es decir
protected $_resource;
y
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Framework\App\Resource $resource,
array $data = []
) {
$this->_resource = $resource;
parent::__construct($context, $data);
}
para la conexión
protected function getConnection()
{
if (!$this->connection) {
$this->connection = $this->_resource->getConnection('core_write');
}
return $this->connection;
}
a continuación se muestra un ejemplo en el archivo de bloque
<?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
no existe (al menos no en 2.1.3). No quiere decirResourceConnection
?has usado la llamada anterior para la versión beta core_write y core_read en rc es así:
obtener adaptador:
obtener tabla y seleccionar:
curso completo desde aquí
fuente
He logrado esto de la siguiente manera. Tengo un archivo personalizado donde estoy creando objeto y funcionó. Compruébalo una vez.
Intenta avisarme si te funciona.
fuente
No funciona para mí :(
Aquí está mi archivo de bloque:
Me sale este error: se debe crear el objeto DOMDocument.
¿Qué me estoy perdiendo?
fuente
fuente
Test\Vendor\Model\VendorFactory
oTest\Vendor\Model\Vendor\Collection
.prueba este:
fuente
fuente