BelikovDmitrii, совет принял, с встречным советом: внимательнее читайте вопрос, прежде чем давать невнятные ответы.
Вопрос был не про то, как хранить файлы лэйаутов, это я и без вас знаю
вопрос был в том, как хранить лэйаут не в файле, а в базе.
мне нужно на каждый отдельный подсайт свой отдельный лэйаут, создавать вручную, естественно никто этого не будет.
и качественный или нет этот метод - это уже мне решать
Александр Макаров, в том и дело, что я прочитал лог на основном сайте и там ни слова про то, что формат данных, который прилетает из базы будет автоматически 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, а сразу ввиду массива.
Так то удобная штука, конечно, если конечно вы не попытаетесь обновить уже существующий огромный проект, как это сделали мы и все рухнуло.
Вопрос был не про то, как хранить файлы лэйаутов, это я и без вас знаю
вопрос был в том, как хранить лэйаут не в файле, а в базе.
мне нужно на каждый отдельный подсайт свой отдельный лэйаут, создавать вручную, естественно никто этого не будет.
и качественный или нет этот метод - это уже мне решать