Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Проблема с выводом названия связанного элемента.

00 голосов
4
Здравствуйте.

Подскажите, пожалуйста, я правильно пытаюсь выводить название связанного элемента?

Код
<?$rsShow = CIBlockElement::GetList($arResult["PDC_RSHOW"]);
$arShow = $rsShow->Fetch();?>
<?=$arShow["NAME"]?> 



До переезда на другой сервер, это работало. Не могу понять, что не так - или я что-то начал перекручивать и не докрутил, или это следствие какой-то ошибки при переносе.
спросил 16 Июль, 13 от Mango (260 баллов)

4 Ответы

00 голосов
Если $arResult["PDC_RSHOW"] - это ID связанного элемента, то нужно использовать не GetList, а
CIBlockElement::GetByID($arResult["PDC_RSHOW"])
ответил 16 Июль, 13 от smileplz (8,020 баллов)
00 голосов
$arResult["PDC_RSHOW"] - это свойство в котором хранится связь. Да, возвращает - ID связанного элемента.


Код
<?$rsShow = CIBlockElement::GetByID($arResult["PDC_RSHOW"]);
$arShow = $rsShow->Fetch();?>
<?=$arShow["NAME"]?>


Тоже не работает.
ответил 04 Сен, 13 от Mango (260 баллов)
00 голосов
Проверяйте что у вас в $arResult["PDC_RSHOW"], существует ли такой связанный элемент.
Возможно нужно подключать и модуль инфоблоков: CModule::IncludeModule("iblock");
ответил 02 Дек, 13 от smileplz (8,020 баллов)
00 голосов
Модуль подключен.

Проверяю вот так: <pre><? print_r($arResult["PDC_RSHOW"]); ?></pre> - пусто.
Проверяю вот так: <pre><? print_r($arResult["DISPLAY_PROPERTIES"]["PDC_RSHOW"][VALUE]); ?></pre> - выводит правильный ID элемента.


Записываю в шаблоне компонента (я понимаю что не грамотно, но мне бы для начала так разобраться):

Код
<?$rsShow = CIBlockElement::GetList($arResult["DISPLAY_PROPERTIES"]["PDC_RSHOW"]["VALUE"]);
$arShow = $rsShow->Fetch();?>
<?=$arShow["NAME"]?>


Результат: выводится название файла картинки из совершенно другого, никак, не связанного инфоблока = ничего не изменилось.


Пробую с CIBlockElement::GetByID

Код
<?$rsShow = CIBlockElement::GetByID($arResult["DISPLAY_PROPERTIES"]["PDC_RSHOW"]["VALUE"]);
$arShow = $rsShow->Fetch();?>
<?=$arShow["NAME"]?>



И все получилось :)
Max Pryazhevsky, огромное Вам спасибо.
ответил 14 Март, 14 от Mango (260 баллов)

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

0 голосов
1 ответ
спросил 16 Март, 15 от аноним
0 голосов
2 ответов
спросил 07 Март, 14 от junki (100 баллов)
0 голосов
3 ответов
0 голосов
0 ответов
спросил 03 Окт, 13 от xCrusherx (140 баллов)
0 голосов
0 ответов
спросил 06 Сен, 13 от xCrusherx (140 баллов)