Страница 1 из 1
Перенос подсущности на верхний уровень.
Добавлено: 18 фев 2021, 18:10
tax
Доброго времени суток!
Коллеги, посоветуйте как правильней переместить вложенную сущность на верхний уровень. Сам механизм перемещения есть в меню управления сущностями, но мне нужно сохранить (не потерять) связь с родительской сущностью.
Более конкретно... есть Проекты и в них Счета. Нужно вынести Счета и иметь связь с сущностью Проекты.
Re: Перенос подсущности на верхний уровень.
Добавлено: 18 фев 2021, 21:09
nruslan2
Я бы временно ввел бы дополнительное поле заполнил номером родителя (ну и связь заодно) и потом бы переносил.
Re: Перенос подсущности на верхний уровень.
Добавлено: 19 фев 2021, 06:42
support
Связь с родительской сущностью хранится в parent_item_id
Соответственно это значение нужно скопировать в поле Сущность для каждой записи, чтобы сохранилась связь. Можно сделать в phpMyAdmin
При переносе на верхний уровень parent_item_id обнулится.
Re: Перенос подсущности на верхний уровень.
Добавлено: 22 фев 2021, 18:44
tax
в таблице (счета) создал временное поле
prg_id
Код: Выделить всё
ALTER TABLE `app_entity_41` ADD `prg_id` INT NOT NULL AFTER `sort_order`;
Скопировал в это поле значения из
parent_item_id
Код: Выделить всё
UPDATE `app_entity_41` SET `prg_id`=`parent_item_id`
Переместил сущность "Счета" на верхний уровень средствами "руководителя"
Создал Поле с типом
Сущность (ID=609)
Скопировал в это поле значения из prg_id
Код: Выделить всё
UPDATE `app_entity_41` SET `field_609`=`prg_id`
В таблице всё красиво и в списке отображается, но фильтр по этому полю не работает. Только если пересохранить запись, тогда начинает работать фильтр.
Сергей, подскажите, может ещё в какой таблице хранятся связи с сущьностью?
Re: Перенос подсущности на верхний уровень.
Добавлено: 23 фев 2021, 07:08
support
В базе есть таблица app_entity_41_values куда нужно вставить значения из поля 609
Нужно в цикле перебрать все записи из таблицы app_entity_41
и для каждой записи вставить строчку в таблицу app_entity_41_values
Код: Выделить всё
INSERT INTO `app_entity_41_values` (`items_id`, `fields_id`, `value`) VALUES ('ID записи', 609, 'значения поля 609');