Como adicionar uma variável a um modelo de campo de galho?


9

Em uma página de nó, gostaria de adicionar o título do nó à saída ao lado de outro outro campo (o campo de exemplo).

Eu criei um novo, field--field-example.html.twigmas não consigo acessar a variável de título do nó, pois ela não está disponível no modelo de campo.

Eu preciso adicionar as variáveis para a pré-processar tema themename.theme.

Como adiciono a variável themename.themee qual seria a entrada correspondente no arquivo field--field-example.html.twig?


Use hook_preprocess_node para extrair o valor do campo que você gostaria de usar no modelo.

@IvanJaros, atualizei a pergunta agora.
Taylor Taf

Respostas:


15

Como você perguntou sobre a passagem do título do nó como uma variável através do arquivo .theme, você pode usar o template_preprocess_field para fazer algo assim:

  function themename_preprocess_field(&$variables, $hook) {
    if ($variables['element']['#field_name'] == 'field_example') {
      $variables['node_title'] = $variables['element']['#object']->getTitle();
    }
  }

então, no seu, field--field-example.html.twigvocê pode simplesmente usar {{node_title}}para renderizar o título do nó.

Veja também a resposta do 4k4 abaixo.


Tentei editar sua resposta para incluir o fornecido pela 4k4 como é correto, mas a minha edição foi recusado, uma vez que foi considerado não relevante ...
Taylor Taff

@TaylorTaff, que aprova edições? Eu nunca vi isso. Tentará editar para incluir a resposta abaixo.
Janey

@ Janey Muitos usuários com distintivos suficientes podem revisar essas edições. Marquei suas respostas para revisão futura. Mais uma pergunta: vocês tem certeza de que $variables['element']['#object']->getTitle();é possível acessar preprocess_field? Porque este seria realmente responder a minha pergunta aqui: drupal.stackexchange.com/questions/197497/...
nilsun

11

Há um objeto de nó disponível nas variáveis ​​do modelo de campo, portanto, você não precisa de uma função de pré-processo.

Para obter o título do nó em um modelo de campo:

{{ element['#object'].label }}

Isso responde à pergunta, mas como a outra resposta de Janey será mais útil, eu adicionei essa resposta e marquei como aceito.
Taylor Taf

11
Mas sua pergunta estava sob a suposição errada: "mas não consigo acessar a variável de título do nó, pois ela não está disponível no modelo de campo".
4k4 15/02/16

Sim 4k4, você está correto, minha pergunta estava incorreta.
Taylor Taf
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.