Как получить данные пользовательской таблицы в файле phtml без создания файла модели. Магенто 2
Я создал пользовательскую таблицу в своей базе данных через phpmyadmin, теперь я хочу отобразить запись top1 из этой таблицы на домашней странице, а записи top2, top3 должны отображаться на странице сведений о продукте.
3 answers
Вы можете получить данные своей пользовательской таблицы следующим образом
Метод - 1: С помощью Заводского метода
<?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;
}
Затем вы можете получить данные своей пользовательской таблицы в файле phtml
$myTableData = $this->getTableData();
print_r($myTableData);
Метод - 2: С помощью 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);
В этом случае вам следует создать пользовательскую модель для этой пользовательской таблицы.
Следуйте этому https://www.softprodigy.com/store/article/create-model-and-collection-for-custom-table-in-magento2/{[9] } для справки.
В этом вы должны объявить Модель, Модель ресурсов, Класс коллекции..
Вам необходимо создать блок и шаблон. И создайте макет, чтобы создать связь между block.php и template.php . затем, используя объект $block, вы можете вызвать метод block.