Если вы блокируете или моделируете файлы, вам нужно инициализировать ресурс, затем вам нужно вызвать соединение
то есть
protected $_resource;
и
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Framework\App\Resource $resource,
array $data = []
) {
$this->_resource = $resource;
parent::__construct($context, $data);
}
для связи
protected function getConnection()
{
if (!$this->connection) {
$this->connection = $this->_resource->getConnection('core_write');
}
return $this->connection;
}
ниже приведен пример в файле блока
<?php
/**pradeep.kumarrcs67@gmail.com*/
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
не существует (по крайней мере, не в 2.1.3). Ты имеешь в видуResourceConnection
?вы используете старый вызов для бета-версии core_write и core_read в rc выглядит так:
получить адаптер:
получить таблицу и выбрать:
полный курс отсюда
источник
Я добился этого следующим образом. У меня есть специальный файл, в котором я создаю объект, и он работает. Проверьте это один раз.
Попробуйте и дайте мне знать, если это работает для вас.
источник
У меня не работает :(
Вот мой файл блока:
Я получаю эту ошибку: объект DOMDocument должен быть создан.
Что мне не хватает?
источник
источник
Test\Vendor\Model\VendorFactory
илиTest\Vendor\Model\Vendor\Collection
.Попробуй это :
источник
источник