node_load((int) $nid)
carrega uma entidade do nó totalmente preenchida. $node->title->value
obtém o título, mas como acesso valores de campo no Drupal 8?
63
Eu acho que você não precisa converter $entity
em uma matriz, isso simplesmente funcionaria.
$entity->get('field_name')->getValue();
FYI: O uso kint()
do devel_kint
módulo permitirá que você saiba todos os métodos disponíveis que podem ser usados para acessar os elementos do objeto; portanto, comparativamente, var_dump()
é menos útil.
getValue()
funciona para mim (tanto em 8.1.xe 8.2.x) consulte a referência da API->getValue()
é genérico e funcionará independentemente do tipo de campo. Se você usar->value
, ele funcionará apenas se o valor do campo estiver armazenado em umavalue
propriedade. Não funcionará para tipos mais complexos (por exemplo, referência de data ou entidade).no drupal 8, sendo $ node do nó da classe
ou
retornará uma matriz de valores.
Se você espera apenas um, também pode restringir a matriz com
ou
fonte
Para campos você deve poder usar,
$node->body->value
por exemplo. Se você não souber quais são os nomes dos campos, recomendo instalar o módulo Devel para Drupal 8 e inspecionar o nó por meio de um exemplodsm($node)
.fonte
Você sempre pode fazer
$entity->toArray()
para ver o que há em uma entidade. Mesmo ao usar o xdebug (por exemplo, com o phpstorm), é muito difícil entender um objeto de entidade por si próprio. Duvido quedsm($node)
no Drupal 8 faça algum sentido. Se você insiste na depuração no navegador (mas não deve, o Drupal 8 é muito complexo para depurar sem o xdebug)dsm($node->toArray())
é o que você deseja.fonte
Drupal\Core\Entity\EntityInterface
temtoArray
.Use o seguinte snippet de código para obter valores de campo do nó
Isso é usado para obter o ID do nó da URL
Para carregar dados do nó usando nid
Isso é usado para obter o valor do campo.
Isso é usado para obter o título do nó.
fonte
Para mim, ter um
$entity
(um nó) funcionou:usando 8.1.
fonte
Enquanto estiver usando (da maneira correta):
fonte
Ou
Aqui está uma boa descrição sobre como acessar valores do objeto de nó https://www.frobiovox.com/posts/2016/03/28/simplify-drupal-8-field-value-calls.html
fonte
É simplesmente:
Se o campo for um campo de referência de entidade, existem algumas maneiras especiais de obter as entidades referenciadas.
Para obter o ID de destino (primeiro elemento):
Para obter a entidade carregada (primeiro elemento):
Ao usar
->entity
no campo, ele carrega automaticamente a entidade.Se o campo puder conter várias referências, você poderá buscá-las assim:
Isso lhe dará uma variedade de entidades.
fonte