你怎么检查drupal 8中的字段是否为空?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你怎么检查drupal 8中的字段是否为空?相关的知识,希望对你有一定的参考价值。

我在基本页面的内容类型中添加了一个字段。这是一个选择框,可以选中或取消选中,具体取决于页面是否为“入门”类型。如果页面是一个入门页面,我想在html中的body元素中添加“get-started”类,即选中该框。我想在.theme文件中执行此操作。所以基本上我想检查字段是否为空,如果不是将该类添加到body元素。任何帮助将非常感激。

答案

要检查字段是否为空,可以使用内置方法isEmpty()

Ef。:

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;
}
另一答案

您可以通过以下方式在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 %}
另一答案

您可以使用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;

或者:您直接在节点树枝模板中检查字段的值。问题是你是否真的有必要将你想要的类添加到body元素中。也许将它添加到节点的article标签可以完成工作,这至少更容易检查。

如果你真的需要将它添加到body元素,我想你需要使用template_preprocess_page函数,并首先检查正在加载的页面是否是一个节点,然后找出哪个节点等。

另一答案

这个解决方案对我有用,field_poster没有或最大值1。

{% if content.field_poster[0] is not empty %}

以上是关于你怎么检查drupal 8中的字段是否为空?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Drupal 8菜单项中添加额外的字段。我想添加一个额外的图像字段

如何在drupal 8中的主题字段

JPA JPQL 怎么判断某个字段是不是为空

IF 语句中的 jQuery OR 运算符检查任一文本字段是不是为空

检查我视图中的所有文本字段是不是为空目标c [重复]

根据drupal 8的其他分类列表创建分类依赖列表?