我正试图在magento的单独php文件中获取一些货币汇率并保存它们:
<?php
// Initiate application
$mageFilename = 'app/Mage.php';
require_once $mageFilename;
Mage::app();
// Code to create my $rates array
/** CODE **/
foreach ($rates as $currencyCode => $currencyRates) {
Mage::getModel('directory/currency')
->setId($currencyCode)
->setRates($currencyRates)
->save();
}
错误:
<br />
<b>Fatal error</b>: Uncaught exception 'Mage_Core_Exception' with message 'Cannot retrieve entity config: directory/currency' in /home/users/A000456/shoppingonline.be/www.shoppingonline.be/app/Mage.php:550
Stack trace:
#0 /home/users/A000456/shoppingonline.be/www.shoppingonline.be/app/code/core/Mage/Core/Model/Resource.php(161): Mage::throwException('Cannot retrieve...')
#1 /home/users/A000456/shoppingonline.be/www.shoppingonline.be/app/code/core/Mage/Core/Model/Mysql4/Abstract.php(265): Mage_Core_Model_Resource->getTableName('directory/curre...')
#2 /home/users/A000456/shoppingonline.be/www.shoppingonline.be/app/code/core/Mage/Core/Model/Mysql4/Abstract.php(247): Mage_Core_Model_Mysql4_Abstract->getTable('currency')
#3 /home/users/A000456/shoppingonline.be/www.shoppingonline.be/app/code/core/Mage/Core/Model/Mysql4/Abstract.php(402): Mage_Core_Model_Mysql4_Abstract->getMainTable()
#4 /home/users/A000456/shoppingonline.be/www.shoppingonline.be/app/code/core/Mage/Core/Model/Abstract.php(306): Mage_Core_Model_Mysql4_Abstract->save( in <b>/home/users/A000456/shoppingonline.be/www.shoppingonline.be/app/Mage.php</b> on line <b>550</b><br />
我发现这是发生这种情况的save()方法。
思考?不知道从哪里开始调试这个。如果我知道存储费率的位置也可以,所以我可以手工插入它们......
(我从 Mage_Directory_Model_Currency_Import_Abstract 类中获取代码,通过magento界面正常保存工作正常)
答案 0 :(得分:1)
答案 1 :(得分:0)
我的第一个想法是在另一个PHP文件的上下文中启动Magento,但没有Magento在引导自身时提供的所有修复程序,似乎存在风险。
阻力最小的路径,除了极少数例外,让Magento成为Magento并做其事,越少越好。考虑到这一点,您是否可以设置Magento控制器/操作并从那里调用此数据,甚至可以远程使用它(例如使用file_get_contents
)?