Привет.
У меня в карточке для сущности Х есть три поля Страна, регион, город реализованные через тип Многоуровневый список сущностей для сущности Город. По умолчанию в таблицу списка я могу вывести только колонку(поле) Город. Вопрос. Как в таблицу списка для сущности Х вывести колонки(поля) Страна и Регион тоже?
Поля из многоуровневого списка сущностей в таблицу списка
- Fait
- Инвестор

- Сообщения: 1181
- Зарегистрирован: 19 ноя 2020, 17:46
- Имя: Максим Балакшеев
- Откуда: Россия, Златоуст
- Организация: ИП Балакшеев Максим Георгиевич
Re: Поля из многоуровневого списка сущностей в таблицу списка
Можно двумя путями:
1) Создать ещё два поля с PHP-кодом или SQL-формулой. Вот их то и можно вывести в список, а в них непосредственно отобразить значение.
2) Создать ещё два поля: одно с типом "Сущность Ajax", другое с типом "Многоуровневый список сущностей". И в настройках у них уже указать нужные сущности: у первого сущность "Страны", у второго сущность "Страны" для первого уровня и сущность "Регионы" для второго уровня.
Ну а в целевом поле по итогу указать сущность "Страны" для первого уровня, сущность "Регионы" для второго уровня и сущность "Города" для третьего уровня.
1) Создать ещё два поля с PHP-кодом или SQL-формулой. Вот их то и можно вывести в список, а в них непосредственно отобразить значение.
2) Создать ещё два поля: одно с типом "Сущность Ajax", другое с типом "Многоуровневый список сущностей". И в настройках у них уже указать нужные сущности: у первого сущность "Страны", у второго сущность "Страны" для первого уровня и сущность "Регионы" для второго уровня.
Ну а в целевом поле по итогу указать сущность "Страны" для первого уровня, сущность "Регионы" для второго уровня и сущность "Города" для третьего уровня.
Каталог полезных плагинов для вас: viewtopic.php?t=9512
- Fait
- Инвестор

- Сообщения: 1181
- Зарегистрирован: 19 ноя 2020, 17:46
- Имя: Максим Балакшеев
- Откуда: Россия, Златоуст
- Организация: ИП Балакшеев Максим Георгиевич
Re: Поля из многоуровневого списка сущностей в таблицу списка
Ну и, если решите через коды действовать:
Это SQL для выбора страны:
SQL для выбора региона:
И вот вариации на PHP:
Выбор страны:
Выбор региона:
Расшифровка полей:
app_entity_22 - сущность со странами
field_222 - название страны
app_entity_33 - сущность с регионами
field_333 - название региона
app_entity_44 - сущность с городами
field_444 - поле с городом
Это SQL для выбора страны:
Код: Выделить всё
SELECT c.field_222
FROM app_entity_44 a
LEFT JOIN app_entity_22 c
ON c.id = CAST(SUBSTRING_INDEX(a.field_444, ',', 1) AS UNSIGNED)
WHERE a.id = [id]
Код: Выделить всё
SELECT r.field_333
FROM app_entity_44 a
LEFT JOIN app_entity_33 r
ON r.id = CAST(
SUBSTRING_INDEX(SUBSTRING_INDEX(a.field_444, ',', 2), ',', -1)
AS UNSIGNED
)
WHERE a.id = [id]
Выбор страны:
Код: Выделить всё
$value = [444]; // поле с городом
$parts = array_map('intval', explode(',', $value));
$country_id = ($parts[0] ?? 0);
if ($country_id > 0) {
$sql = "SELECT field_222 FROM app_entity_22 WHERE id = {$country_id} LIMIT 1";
$row = db_fetch_array(db_query($sql));
$output_value = $row['field_222'] ?? '';
}
Код: Выделить всё
$value = [444]; // поле с городом
$parts = array_map('intval', explode(',', $value));
$region_id = ($parts[1] ?? 0);
if ($region_id > 0) {
$sql = "SELECT field_333 FROM app_entity_33 WHERE id = {$region_id} LIMIT 1";
$row = db_fetch_array(db_query($sql));
$output_value = $row['field_333'] ?? '';
}
app_entity_22 - сущность со странами
field_222 - название страны
app_entity_33 - сущность с регионами
field_333 - название региона
app_entity_44 - сущность с городами
field_444 - поле с городом
Каталог полезных плагинов для вас: viewtopic.php?t=9512
