Como faço para obter mais facilmente uma imagem (seu caminho) do tipo de conteúdo do artigo incluído no Drupal 8?
O que eu tenho é uma entidade. Usar $image = $node->fields['field_image']
me dá uma estrutura infernal, no entanto.
Não existe uma maneira mais fácil de obter o caminho da imagem? Também não consigo encontrar a URL, o que recebo é algum tipo de target_id (o ID do arquivo?).
get_class ($node->fields['field_image'])
você tem?file_load()
e um dos métodos disponíveis emDrupal\file\FileInterface
Respostas:
Não vi isso antes.
A maneira mais curta de obter a entidade referenciada para um campo de valor único é:
Você também pode especificar o delta explicitamente:
Isso funciona com muita mágica ArrayAccess e __get ().
Veja também a grande folha de dicas em http://wizzlern.nl/drupal/drupal-8-entity-cheat-sheet . e https://www.drupal.org/node/1795854 e as outras páginas de documentação lá para obter mais informações (ainda há muito trabalho em andamento).
fonte
O que acabou trabalhando para mim no D8 é:
Usar
kint($node->get('field_image')->entity)
e examinar a matriz foi muito útilEntão, no meu arquivo de galho, usei:
fonte
Portanto, minha solução foi usar o método "referencedEntities ()" encontrado no objeto node. Isso me deu uma matriz de objetos de arquivo que eu poderia percorrer e usar o método "url ()" dos objetos de arquivo para recuperar um caminho válido.
fonte
Se o seu nó tiver mais de uma imagem, você poderá usá-lo para obter uma matriz dos URLs da imagem (útil para criar módulos de apresentação de slides entre muitas outras coisas úteis)
A matriz imageUrls retém todos os URLs de todas as imagens associadas ao campo de nós. Espero que isto ajude.
fonte