Dalam Anda memblokir atau memodelkan file Anda perlu menginisialisasi sumber daya maka Anda perlu memanggil koneksi
itu adalah
protected $_resource;
dan
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Framework\App\Resource $resource,
array $data = []
) {
$this->_resource = $resource;
parent::__construct($context, $data);
}
untuk koneksi
protected function getConnection()
{
if (!$this->connection) {
$this->connection = $this->_resource->getConnection('core_write');
}
return $this->connection;
}
di bawah ini adalah contoh dalam file blok
<?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
tidak ada (setidaknya tidak dalam 2.1.3). Bukankah maksud AndaResourceConnection
?Anda telah menggunakan panggilan lama untuk versi beta core_write dan core_read di rc seperti ini:
dapatkan adaptor:
dapatkan tabel dan pilih:
menyelesaikan kursus dari sini
sumber
Saya telah mencapai ini dengan cara berikut. Saya memiliki file khusus tempat saya membuat objeknya dan itu berfungsi. Periksa sekali.
Coba dan beri tahu saya jika itu berhasil untuk Anda.
sumber
Tidak bekerja untuk saya :(
Ini file blokir saya:
Saya mendapatkan kesalahan ini: Obyek DOMDocument harus dibuat.
Apa yang saya lewatkan?
sumber
sumber
Test\Vendor\Model\VendorFactory
atauTest\Vendor\Model\Vendor\Collection
.coba yang ini :
sumber
sumber