[РЕШЕНО] CurrancyRate не сохраняет charcode в БД
Приветствую, после установки компонента и обновления курсов в таблице с курсами на вкладке компонента в админке столбик с буквенными кодами валит содержит одни 0, в БД тоже самое, при этом если вывести в лог данные
public function rateIntoDb()
{
if ($this->loadRate()) {
// add RUB
if (!$itemFromDb = $this->modx->getObject('CRlist', array('numcode' => $this->rub['numcode']))) {
$itemFromDb = $this->modx->newObject('CRlist');
$itemFromDb->fromArray(array_merge(
$this->rub,
array(
'nominal' => 1,
'value' => 1,
'valuerate' => 1,
'rank' => 0
)));
if (!$itemFromDb->save()) {
$this->modx->log(1,
print_r('[CR:Error] save to db for charcode - ' . $itemFromDb->get('charcode'), 1));
}
}
foreach ($this->list as $item) {
if (!$itemFromDb = $this->modx->getObject('CRlist', array('numcode' => $item['numcode']))) {
$itemFromDb = $this->modx->newObject('CRlist');
$itemFromDb->set('rank', $this->modx->getCount('CRlist'));
}
$item['rate'] = $itemFromDb->get('rate');
$item = $this->calcData($item);
$itemFromDb->fromArray($item);
$this->modx->log(1, $itemFromDb->get('charcode')); // ВОТ ЗДЕСЬ charcode есть
if (!$itemFromDb->save()) {
$this->modx->log(1, print_r('[CR:Error] save to db for charcode - ' . $item['charcode'], 1));
}
}
$this->cleanCache();
return true;
}
$this->modx->log(1, print_r('[CR:Error] NO loadRate()', 1));
return false;
}
то, буквенный код на месте и вроде как даже записывается в БД. Ошибок в консоли нет, в логах тоже пусто. Кто знает в чём прикол? На другом сайте работает, но как я этого добился не помню, а может работало из коробки, хотя версии компонента на обоих сайтах одинаковые. Версия движка последняя, php везде 5.6 и выше.
Поблагодарить автора
Отправить деньги
Комментарии: 2
Не совсем уверен, но проверьте phptype у этого поля в карте и схеме:
core/components/currencyrate/model/currencyrate/mysql/crlist.map.inc.php
core/components/currencyrate/model/schema/currencyrate.mysql.schema.xml
Поставьте string.
Вы оказались правы, помогло. Спасибо.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.