Страница 1 из 1

Не меняются значения параметров если их редактировать в базе

СообщениеДобавлено: 15 сен 2012, 01:47
Calvin
Продолжаю разбираться в программировании на примере вашего отличного кода *BRAVO*
Но столкнулся с тем, что при попытке сменить значение какой-нибудь настройки (таблица configuration) напрямую через базу (каким нибудь sql менеджером) происходят непонятные мне вещи:

в таблице значение меняется (даже в админку в грид оно выводится новое) но функция param() в других частях приложения возвращает старое значение... *WALL*
Если менять не напрямую, а через админку, то все в порядке.

С чем это связано? с кэшированием? какое то поведение задействуется?

И кстати при смене настройки через админку не меняется значение date_updated и не понятно почему этот функционал реализован через поведение. Разве не для этого тип в mySQL current_timestamp on update current_timestamp ?
Если можете, разъясните пожалуйста

ps: Если это важно HeidiSQL при смене значения настроки выдает ошибку "0 rows updated when should have been 1" хотя значение все равно меняется. PhpMyAdmin меняет без ошибки, но все равно param() выводит старое значение

Re: Не меняются значения параметров если их редактировать в

СообщениеДобавлено: 15 сен 2012, 19:05
Xpycm
Значение настроек из таблицы configurations кешируется. За подробностями смотрите файл protected\modules\configuration\components\Configuration.php
И, естественно, если менять значения напрямую из phpMyAdmin, то необходимо удалять файлы кеша из protected/runtime/cache

В модели protected\modules\configuration\models\ConfigurationModel.php при сохранении кеш чистится: в методе beforeSave вызывается Configuration::clearCache();

Re: Не меняются значения параметров если их редактировать в

СообщениеДобавлено: 15 сен 2012, 22:13
Calvin
Спасибо! Вот оно что........