Александр Макаров, в том и дело, что я прочитал лог на основном сайте и там ни слова про то, что формат данных, который прилетает из базы будет автоматически decode
там лишь написано что добавлена поддержка json, что в моем понимании никак не возвращаемый автоматически формат данных ввиде массива =)
Enh #7640: Implemented custom data types support. Added JSON support for MySQL and PostgreSQL, array support for PostgreSQL (silverfire, cebe)
ЗЫ за ссылку спасибо, там есть вариант решения без вмешательства во фреймворк, завтра поправлюсь.
slo_nik, если же у вас есть что ответить по теме и подсказать как отключить данную возможность не в самом фреймворке - я скажу вам огромное спасибо :)) но пока даже один из разработчиков молчит, не отвечает.
slo_nik, когда проект лежит и заказы с сайта, который имеет оборот 15 миллионов в день, не поступают уже 2 часа, но нигде нет ни слова о том, как поправить сложившуюся ситуацию - вы считаете что поправить что-то во фрейме не лучшая идея?))
Да, изначально эт наш косяк, что обновились неглядя. Но кто бы мог подумать, что миграция с 0.13 до 0.14 версии будет столь болезненная.
Вдруг кому-то поможет эта запись, ибо 3 часа назад я был бы очень рад ее найти, это избавило бы меня от 2х часового головняка.
OKyJIucT, да всяко уже пробовали. и даунгрейд до 2.0.13 выдает эту ошибку и замена папки вендор.
в общем пришлось обновиться до 2.0.14
зайти в файл /vendor/yiisoft/yii2/db/mysql/ColumnSchema.php
и установить вручную public $disableJsonSupport = true;
затем сбросить кэш enableSchemaCache в конфигах и после этого все пришло в норму
правда пока была включена эта опция, сайт из 1С подтянул в себя криво данные JSON поэтому приходится сейчас все вычищать ручками
в очередной раз повторюсь - разработчики просто огонь!
впредь буду намного вдуманней обновляться. Впервые такой прикол, если честно, поэтому даже не задумываясь обновился.
OKyJIucT, так я вам про это же и написал вышеееее :)
даунгрейд до 2.0.13 выдает теперь следующую ошибку:
yii\db\ActiveRecord::populateRecord(): The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "yii\db\mysql\ColumnSchema" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition
OKyJIucT, не, это все не то. Sam написал в комментариях что они сделали возможность отключить эту "крутую вещь", но где и как это сделать - я так и не нашел. а все что я написал выше - лишь потуги быстро исправить ситуацию. которая до сих пор остается аховой. проект лежит. разворот проекта из бэкапа ситуацию не решил.
OKyJIucT, где вы об этом прочитали? у меня достаточно много таблиц которые хранят JSON, мне теперь везде придется делать? чет не очень приколы. в таком случае лучше сидеть на 2.0.13. слава богу бэкапы ежедневно делаются))
Lander, я нашел только в /yii/db/mysql/ColumnSchema.php параметр disableJsonSupport , но указание данной настройки в конфигах выдает ошибку что такого параметра не существует, а задание втупую прям в файле на = true не меняет ничего.
Lander, не помогает. прикол в том, что фича - включена по умолчанию. а где и как ее выключить - чет забыли написать. Собственно поэтому я и задал вопрос здесь ))
Lander, если вы используете данные в формате JSON из базы данных, то теперь они прилетают оттуда не в виде строки, что потом требуется делать JSON::decode, а сразу ввиду массива.
Так то удобная штука, конечно, если конечно вы не попытаетесь обновить уже существующий огромный проект, как это сделали мы и все рухнуло.
Ну а зачем в нативном Sql указывают select('MIN(value)') ? =) тут тоже самое. нужно из таблицы смежных значений вытащить записи с наименьшим значеним в определенном поле.
метод ->min() в yii2 вытаскивает одно единственное значение.
Игорь Васильев, ну а как может пароль сам по себе меняться? алгоритм шифрования и дешифрования, по крайней мере в голой установке yii2, используется через стандартный php password_hash
"проблема только у вас" я имел ввиду не конкретно прям у вас, как у пользователя сайта, а у вашей системы :)
а вообще по описанию проблемы сдается мне что у вас там выборка пользователя при проверке пароля идет по time_expire, как при восстановлении
когда пароль восстанавливаешь - приходит письмо с токеном, который действителен какое-то время
смотрите код, который вытаскивает пользователя, скорее всего там что-то вроде ->where(['email' => email, 'expire' => $expire]) - это очень грубо конечно, но смотрите там.