我有一个字段添加到基本页面的内容类型。它是一个选择框,根据页面是否是“入门”类型,该框可以选中或取消选中。如果页面是入门页面,即希望检查该框,我想将该类别的“入门”添加到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,而不仅仅是节点,例如,在分类页面,头版或任何其他自定义实体页面上。所以$变量变量并不总是相同的。这就是我的意思,“首先检查被加载的页面是否为节点,然后找出哪个节点等。” –