@djacode

Почему при попытке изменить языкозависимые названия любого хайлоадблока у меня ошибка?

Собственно сама ошибка:
[Bitrix\Main\ArgumentException] 
Require multi primary {`ID`, `LID`}, but one scalar value "18" found when trying to query HighloadBlockLang row. (100)
C:\OSPanel\domains\mfc\bitrix\modules\main\lib\orm\data\datamanager.php:625
#0: Bitrix\Main\ORM\Data\DataManager::normalizePrimary
	C:\OSPanel\domains\mfc\bitrix\modules\main\lib\orm\data\datamanager.php:1632
#1: Bitrix\Main\ORM\Data\DataManager::delete
	C:\OSPanel\domains\mfc\bitrix\modules\highloadblock\admin\highloadblock_entity_edit.php:175
#2: require(string)
	C:\OSPanel\domains\mfc\bitrix\admin\highloadblock_entity_edit.php:1
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
@s_im
Да это действительно баг. Неверно записываются поля в базу. А именно при сохранении происходит попытка записать RU и EN название вашего хайлоадблока.

Нашёл способ чтобы не появлялась ошибка.
Нужно зайти в таблицу b_hlblock_entity_lang и удалить все записи.
По сути вы удаляете просто Ru и En названия хайлоадблоков, на работе это ни как не скажется. Будут показываться просто названия (Название сущности) ваших блоков на анлийском.

66ea7eda0d16b299870235.png

Ещё возможно вы столкнётесь с тем что не сможете удалить записи из таблицы. Так как там будет ошибка.
"Данное выделение не содержит уникального столбца. Изменение сетки, выставление галочки, редактирование, копирование и удаление невозможно"

Нашёл урок где описывается как решить эту проблему
https://rutube.ru/video/e131861f55775406988fe81f82...

Если коротко то нужно в начале выполнить команду в SQL
ALTER TABLE b_hlblock_entity_lang add newid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;

У вас появится первичный ключ newid и теперь вы сможете удалить все записи.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы