You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Если сделать запрос - собирается список свойств и кешируется в методе
$props = IblockStructure::properties($iblockId);
в файле /vendor/maximaster/tools.orm/src/Maximaster/Tools/Orm/Iblock/ElementTable.php
Если после этого добавить свойство в инфоблок - то в кеше его нет и выдается exception что свойства не существует.
Unknown field definition ASD (ASD) for Product Entity.[/home/bitrix/www/bitrix/modules/main/lib/entity/querychain.php]"
Не очень приятная ситуация когда обновления заливаются на бой а миграция еще не применилась.
Как решить - либо не кешировать либо более правильно строить уникальный ключ. Можно сравнивать время изменения инфоблока, или добавить в уникальный ключ количество свойств. Хотя бы при добавлении свойства он бы сбрасывался. Да, придется делать всегда запрос для валидации кеша, но это лучше чем текущая ситуация.
В идеале сделать обработчик который при апдейте инфоблока сбрасывал бы кеш свойств.
The text was updated successfully, but these errors were encountered:
На мой взгляд логичнее было бы добавить работу с битриксовым тегированным кешем. В этом случае он бы автоматом сбрасывался во всех типовых кейсах, кроме описанного тобой. Для поддержки твоего кейса в приложении достаточно будет сбрасывать тегированный кеш инфоблока при добавлении свойства (если битрикс сам не делает этого уже, я хз).
Доработка мне видится в общем-то не сложной. Сможешь заняться?
Если сделать запрос - собирается список свойств и кешируется в методе
$props = IblockStructure::properties($iblockId);
в файле /vendor/maximaster/tools.orm/src/Maximaster/Tools/Orm/Iblock/ElementTable.php
Если после этого добавить свойство в инфоблок - то в кеше его нет и выдается exception что свойства не существует.
Unknown field definition
ASD(ASD) for Product Entity.[/home/bitrix/www/bitrix/modules/main/lib/entity/querychain.php]"
Не очень приятная ситуация когда обновления заливаются на бой а миграция еще не применилась.
Как решить - либо не кешировать либо более правильно строить уникальный ключ. Можно сравнивать время изменения инфоблока, или добавить в уникальный ключ количество свойств. Хотя бы при добавлении свойства он бы сбрасывался. Да, придется делать всегда запрос для валидации кеша, но это лучше чем текущая ситуация.
В идеале сделать обработчик который при апдейте инфоблока сбрасывал бы кеш свойств.
The text was updated successfully, but these errors were encountered: