我有一個字段添加到基本頁面的內容類型。它是一個選擇框,根據頁面是否是「入門」類型,該框可以選中或取消選中。如果頁面是入門頁面,即希望檢查該框,我想將該類別的「入門」添加到html中的body元素。我想在.theme文件中執行此操作。所以基本上我想檢查一下,看看這個字段是否爲空,以及它是否將這個類添加到body元素中。任何幫助將非常感激。如何檢查drupal 8中的字段是否爲空?
1
A
回答
0
您可以使用template_preprocess_node(https://api.drupal.org/api/drupal/core%21modules%21node%21node.module/function/template_preprocess_node/8)函數來選取正在加載的節點的可用變量。
在此功能中,你可以像這樣訪問節點的字段:
$variables['content']['field_some_name']
如果檢查通過,你可以添加一些自定義變量在樹枝模板中使用:
$variables['something'] = true;
OR:您直接在節點樹枝模板中檢查該字段的值。問題是,如果真的有必要將所需的類添加到body元素。也許將它添加到節點的文章標籤中可以完成這項工作,至少可以更容易地檢查。
如果你真的需要把它添加到body元素,我想你需要使用template_preprocess_page功能,首先檢查是否正在加載的頁面是一個節點,然後找出哪些節點等
4
要檢查字段是否爲空,可以使用內置方法isEmpty()
。
例如爲:
if (!$entity->get('category')->isEmpty()) {
/** @var EntityInterface $category */
$category = $entity->get('category')->entity;
$row['category']['data'] = [
'#type' => 'link',
'#title' => $category->get('name')->value,
'#url' => $category->toUrl(),
];
}
else {
$row['category'] = NULL;
}
0
以下方法可以檢查該字段爲空或不TWIG模板。
{% if node.field_date.value %}
<div class="my-field-wrapper">
{{ content.field_date }}
</div>
{% endif %}
或
{% if node.field_date.value is not empty %}
{{ content.field_date }}
{% endif %}
0
該解決方案爲我工作,在field_poster
現在沒有或最高值1。
{% if content.field_poster[0] is not empty %}
相關問題
- 1. 如何檢查表單中的任何字段是否爲空
- 2. 如何檢查ABNewPersonViewController中的所有字段是否爲空
- 3. 如何檢查codeigniter中的文件字段是否爲空?
- 4. 如何檢查數據庫中的字段是否爲空?
- 5. PHP檢查是否爲空字段
- 6. 檢查字段是否爲空
- 7. PHP檢查字段是否爲空
- 8. 檢查輸入字段是否爲空
- 9. 檢查winforms字段是否爲空
- 10. 檢查文本字段是否爲空
- 11. Django檢查字段是否爲空?
- 12. phpMailer檢查字段是否爲空
- 13. Laravel auth檢查字段是否爲空
- 14. mysql檢查是否爲空字段
- 15. laravel 5.2 - 檢查字段是否爲空
- 16. 如何檢查DateTime字段是否爲空或空?
- 17. 如何檢查字段是否爲空且空白?
- 18. 如何檢查字段是否爲textarea
- 19. 如何檢查JPassword字段是否爲
- 20. 如何檢查顯示的輸入字段是否爲空?
- 21. 如何檢查一個字段是否爲空?
- 22. 如何檢查是否屏蔽輸入字段爲空
- 23. 如何檢查一個字段是否爲空?
- 24. 如何檢查文件字段是否爲空?
- 25. 如何主動檢查EditText字段是否爲空?
- 26. 檢查是否有任何字段在一行中爲空
- 27. 是否可以檢查mysql行中的任何字段是否爲空?
- 28. 檢查字符串/數字類型的字段是否爲空
- 29. 檢查DTL中的字段是否爲空的最佳方法
- 30. 檢查jQuery中的字段是否爲空的快捷方式
不幸的是,我不得不將該類添加到body元素,因爲我需要根據我檢查的字段的值更改頁面標題的顏色。我熟悉在'template_preprocess_page'函數中向主體添加類的過程,但我不熟悉在響應的後半部分中描述的方式和原因,「首先檢查頁面被加載的是一個節點,然後找出哪個節點等「。 – ljolz
我不能只是檢查字段是否設置了上面取樣的代碼,然後將所有類應用於預處理頁面函數中? – ljolz
「問題」是在所有頁面上調用template_preprocess_page,而不僅僅是節點,例如,在分類頁面,頭版或任何其他自定義實體頁面上。所以$變量變量並不總是相同的。這就是我的意思,「首先檢查被加載的頁面是否爲節點,然後找出哪個節點等。」 –