Я пытаюсь получить доступ к изображениям uri в массиве в коллекции полей, но я не знаю, как получить к ним доступ. Если посмотреть в модуле развейте, я могу видеть местоположение первого URI изображения в массиве выглядит следующим образом:Как получить доступ к элементам в коллекции полей (Drupal 7)
['field_text_and_image'][0]['entity']['field_collection_item'][2474]['field_about_accreditation_image'][0]['#item']['uri']
Я озадачен, потому что у меня есть метод «field_get_items» для доступа к коллекции поля Я таргетирование как так ...
$text_and_image_field = field_get_items('node', $node, 'field_text_and_image');
... и если я печатаю/рендеринга этой переменной, я бы ожидал увидеть массив печатается на странице, но вместо того, чтобы ничто не создано. Тем не менее, я сделал условие на странице, которая проверяет, существует ли поле коллекции $ text_and_image_field, и если оно создано для создания элемента, и оно действительно создает элемент, который показывает, что это поле существует. Я просто не могу получить доступ к содержимому.
Так почему же полевая коллекция ничего не печатает и как я могу пройти через массив 'field_about_accreditation', чтобы распечатать все изображения uri?
EDIT *
Я взял несколько больше уколов на этой проблеме и понял, что я сделал ошибку, пытаясь оказать значение «$ text_and_image_field», когда я использую print_r, которые в настоящее время делать это дает мне это значение массива:
Array ([0] => Array ([value] => 2474 [revision_id] => 174439))
на основе старого кода, где доступ к коллекции полей, что произошло через раз значение было присвоенное коллекции поля должен написать следующие утверждения:
$value = field_view_value('node', $node, '$field_text_and_image', $text_and_image_field[$i]);
$field_collection = $value['entity']['field_collection_item'][key($value['entity']['field_collection_item'])];
Однако, когда я пытаюсь распечатать значение $ (которое, я ожидаю, будет «2474»), ничего не отображается.
Вы также можете использовать представление с контекстным фильтром? – GHaddon