আমি কেবল ম্যাজেন্টো 2 তে সরাসরি এসএসএল কোয়েরিটি কল করতে চাই magento1.x এর মতো
আমি কেবল ম্যাজেন্টো 2 তে সরাসরি এসএসএল কোয়েরিটি কল করতে চাই magento1.x এর মতো
উত্তর:
আপনার ব্লক বা মডেল ফাইলগুলিতে আপনাকে সংস্থান কল করার দরকার পরে সংস্থান শুরু করতে হবে
এটাই
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;
}
}
আপনি বিটা সংস্করণ কোর_রাইটের জন্য পুরানো কলটি ব্যবহার করেছেন এবং আর সি তে কোর_আডারটি হ'ল:
protected _resource;
public function __construct(Context $context,
\Magento\Framework\App\ResourceConnection $resource)
{
$this->_resource = $resource;
parent::__construct($context);
}
অ্যাডাপ্টার পান:
$connection = $this->_resource->getConnection(\Magento\Framework\App\ResourceConnection::DEFAULT_CONNECTION);
টেবিল পান এবং নির্বাচন করুন:
$tblSalesOrder = $connection->getTableName('sales_order');
$result1 = $connection->fetchAll('SELECT quote_id FROM `'.$tblSalesOrder.'` WHERE entity_id='.$orderId);
এখান থেকে সম্পূর্ণ কোর্স
আমি নিম্নলিখিত পদ্ধতিতে এটি অর্জন করেছি। আমার একটি কাস্টম ফাইল রয়েছে যেখানে আমি এটির اعتراض তৈরি করছি এবং এটি কাজ করেছে worked একবার এটি পরীক্ষা করে দেখুন।
class Sample extends \Magento\Framework\App\Http implements \Magento\Framework\AppInterface
{
public function sampleMethod()
{
$connection = $this->_objectManager->create('\Magento\Framework\App\ResourceConnection');
$conn = $connection->getConnection();
$select = $conn->select()
->from(
['o' => 'catalog_category_entity_varchar']
)
->where('o.value=?', '2');
$data = $conn->fetchAll($select);
print_r($data);
}
}
চেষ্টা করুন এবং আমাকে জানান যে এটি আপনার পক্ষে কাজ করে কিনা।
আমার জন্য কাজ করে না :(
আমার ব্লক ফাইলটি এখানে:
<?php
namespace Silver\Customize\Block;
use \Magento\Framework\View\Element\Template;
class Main extends Template
{
protected $connection;
protected $_resource;
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Framework\App\Resource $resource
) {
$this->_resource = $resource;
parent::__construct($context, $data);
}
protected function _prepareLayout()
{
$this->setMessage('Hello');
$this->setName($this->getRequest()->getParam('name'));
}
public function getGoodbyeMessage()
{
return 'Goodbye World';
}
protected function getConnection()
{
if (!$this->connection) {
$this->connection = $this->_resource->getConnection('core_write');
}
return $this->connection;
}
}
আমি এই ত্রুটিটি পেয়েছি: অবজেক্ট DOMDocament তৈরি করা উচিত।
আমি কী মিস করছি?
For Join Query,
protected $_objectManager;
public function __construct(
\Magento\Framework\ObjectManagerInterface $objectManager,
\Test\Vendor\Model\ResourceModel\Vendor $resourceModel
) {
$this->resourceModel = $resourceModel;
$this->_objectManager = $objectManager;
}
$collection = $this->_objectManager->create('Test\Vendor\Model\Vendor')->getCollection();
$vendor_id = 5; //get dynamic vendor id
$collection->getSelect()->join('secondTableName as s2','main_table.entity_id = s2.vendor_id', array('*'))->where("main_table.entity_id = ".$vendor_id);
Test\Vendor\Model\VendorFactory
বা হয় Test\Vendor\Model\Vendor\Collection
।
আর একবার চেষ্টা কর :
//for print log on custom log file.
$writer = new \Zend\Log\Writer\Stream(BP . '/var/log/mylog.log');
$logger = new \Zend\Log\Logger();
$logger->addWriter($writer);
$logger->info('Query cron srarting...: ');
try{
$themeId=273;
$this->_resources = \Magento\Framework\App\ObjectManager::getInstance()
->get('Magento\Framework\App\ResourceConnection');
$connection= $this->_resources->getConnection();
$negotiateTable = $this->_resources->getTableName('table_name');
$sql = "Select * FROM " . $negotiateTable;//". WHERE id = " . $themeId . ";";
$result = $connection->fetchAll($sql);
foreach ($result as $item){
$logger->info('Query cron query data...: '.json_encode($item));
}
}catch (\Exception $e){
$logger->info('Query cron query data exception'.$e->getMessage());
}
<?php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$resource = $objectManager->get('Magento\Framework\App\ResourceConnection');
$connection = $resource->getConnection();
$tableName = $resource->getTableName('table_name');
$attribute_information = "Select * FROM " . $tableName; //check for the custom attribute condition". WHERE id = " . $manufacture . ";";
// fetchOne it return the one value
$result = $connection->fetchOne($attribute_information); ?>
\Magento\Framework\App\Resource
বিদ্যমান নেই (কমপক্ষে ২.১.৩-এ নেই)। মানে নাResourceConnection
?