Как получить данные из этой таблицы "курс валюты справочника"
Таблица содержит эти столбцы.
Мне нужно получить данные из этой таблицы 'directory_currency_rate'
Который находится в этом каталоге
/vendor/magento/module-directory/Model/Currency.php
/vendor/magento/module-directory/Model//ResourceModel/Currency.php
В этом файле модели нет файла collection.php
, поэтому невозможно получить данные из этой таблицы.
Кто-нибудь знает, как получить данные из этой таблицы?
Заранее благодарю
2 answers
Если вы не можете получить, используя какой-либо класс или методы, то вы можете использовать инструкцию SQL select, как показано ниже.
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$resource = $objectManager->get('Magento\Framework\App\ResourceConnection');
$connection = $resource->getConnection();
$tableName = $resource->getTableName('directory_currency_rate');
// SELECT DATA
$fields = array('rate');
$sql = $connection->select()
->from($tableName, $fields) // to select some particular fields
->where('currency_from = ?', 'USD')
->where('currency_to = ?', 'EUR'); // adding WHERE condition with AND
$result = $connection->fetchAll($sql);
echo '<pre>'; print_r($result); echo '</pre>';
Вы можете использовать Magento\Directory\Api\CurrencyInformationAcquirerInterface
и его метод getCurrencyInfo
, которые возвращают все доступные валюты и их курсы конвертации.
На моем тестовом хосте он возвращает следующий результат:
Если вы хотите получить простой ответ из базы данных, я рекомендую вам написать собственный запрос.
Вот пример кода, который можно запустить из внешнего скрипта (вне Magento):
<?php
use Magento\Framework\App\Bootstrap;
require __DIR__ . '/app/bootstrap.php';
$params = $_SERVER;
$bootstrap = Bootstrap::create(BP, $params);
$obj = $bootstrap->getObjectManager();
$state = $obj->get('Magento\Framework\App\State');
$state->setAreaCode('frontend');
$currencyInformation = $obj->get('Magento\Directory\Api\CurrencyInformationAcquirerInterface');
$currenciesAndRates = $currencyInformation->getCurrencyInfo();
В своем классе вы должны использовать di: добавьте Magento\Directory\Api\CurrencyInformationAcquirerInterface
в его метод построения и используйте это.