잔가지 필드 템플릿에 변수를 추가하는 방법은 무엇입니까?


9

노드 페이지에서 다른 필드 (예제 필드)와 함께 출력에 노드 제목을 추가하고 싶습니다.

field--field-example.html.twig필드 템플릿에서 사용할 수 없으므로 새 항목을 만들었지 만 노드 제목 변수에 액세스 할 수 없습니다.

테마 사전 프로세스에 변수를 추가해야합니다 themename.theme.

변수를 어떻게 추가 themename.theme하고 field--field-example.html.twig? 의 해당 항목은 무엇입니까?


hook_preprocess_node를 사용하여 템플리트에서 사용하려는 필드에서 값을 추출하십시오.

@IvanJaros, 나는 지금 질문을 업데이트했습니다.
Taylor Taff

답변:


15

.theme 파일을 통해 노드 제목을 변수로 전달하는 것에 대해 요청 했으므로 template_preprocess_field 를 사용 하여 다음과 같이 할 수 있습니다 .

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

그런 다음 field--field-example.html.twig간단히 {{node_title}}노드 제목을 렌더링하는 데 사용할 수 있습니다 .

아래 4k4의 답변도 참조하십시오.


4k4에서 제공 한 답변을 포함하도록 답변을 수정하려고했지만 관련이없는 것으로 판단되어 편집이 거부되었습니다 ...
Taylor Taff

편집을 승인하는 @TaylorTaff? 나는 그것을 본 적이 없다. 아래 답변을 포함하도록 수정을 시도합니다.
Janey

@Janey 배지가 충분한 많은 사용자가 이러한 수정 사항을 검토 할 수 있습니다. 나중에 검토 할 수 있도록 답변을 북마크에 추가했습니다. 하나 더 질문 : 너희들은 확인이 있는가 $variables['element']['#object']->getTitle();에 잡을 수있다 preprocess_field? 이것은 실제로 여기 내 질문에 대답 할 것이기 때문에 : drupal.stackexchange.com/questions/197497/…
nilsun

11

필드 템플릿의 변수에 사용 가능한 노드 객체가 있으므로 전처리 기능이 필요하지 않습니다.

필드 템플릿의 노드에서 제목을 가져 오려면

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

이것은 질문에 대한 답변이지만 Janey의 다른 답변이 더 유용 하므로이 답변에 이것을 추가하고 허용 된 것으로 표시했습니다.
Taylor Taff 2019

1
그러나 귀하의 질문은 잘못된 가정하에있었습니다. "하지만 필드 제목에서 사용할 수 없으므로 노드 제목 변수에 액세스 할 수 없습니다."
4k4

네 4k4, 당신은 맞습니다, 내 질문은 틀 렸습니다.
Taylor Taff
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.