I created custom table in my database through phpmyadmin, now I want display top1 record from that table on home page, and top2,top3 records need to display in product details page.

有帮助吗?

解决方案

You can get your custom table data by following way

Method - 1: By using Factory Method

<?php

protected $_connection;

public function __construct(
    .....
    \Magento\Framework\App\ResourceConnection $resource
    .....
) {
    $this->_connection = $resource->getConnection();
}

public function getTableData()
{
    $myTable = $this->_connection->getTableName('table_name');
    $sql     = $this->_connection->select()->from(
         ["tn" => $myTable]
    ); 
    $result  = $this->_connection->fetchAll($sql);
    return $result;
}

Then you can get your custom table data in phtml file

$myTableData = $this->getTableData();

print_r($myTableData);

Method - 2: By using objectManager

<?php

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$resource = $objectManager->get('Magento\Framework\App\ResourceConnection');
$connection = $resource->getConnection();
$tableName = $resource->getTableName('your_table'); //gives table name

//Select Data from table
$sql = $connection->select()->from(
         ["tn" => $tableName]
    );
$result = $connection->fetchAll($sql);

print_r($result);

其他提示

In this case, you should create a custom model for this custom Table.

Follow this https://www.softprodigy.com/store/article/create-model-and-collection-for-custom-table-in-magento2/ for reference.

In this this you should declare Model, Resource Model , Collection class..

You have to create block and template. And create a layout in to make a link between block.php and template.php. then using $block object you can call block method.

许可以下: CC-BY-SA归因
scroll top