【问题标题】:How can i display all content under content type drupal如何在内容类型drupal下显示所有内容
【发布时间】:2024-05-03 03:20:03
【问题描述】:

我有一个 create 2 内容类型,例如

Finance Form 
HR_content_Form

然后现在包括文章和页面,我有 4 种内容类型

Article 
Basic Page
Finance Form 
HR_content_Form

然后我在 Finance Form 和 HR_content_Form 下添加了内容。现在我想在内容类型下显示所有内容,所以我尝试了

$types = \Drupal::entityTypeManager()
  ->getStorage('node_type')
  ->loadMultiple();





foreach ($types as $machine_name => $content_type) {
    $label[] = $content_type->label();

  }



echo '<pre>';print_r($label);

现在它显示所有内容类型。如何在 Finance Form , HR_content_Form 下显示 我添加的数据。请帮助我

【问题讨论】:

    标签: php view drupal-8


    【解决方案1】:

    你可以loadByProperties

    $types = \Drupal::entityTypeManager()
      ->getStorage('node_type')
      ->loadByProperties(['type' => ['finance_form', 'hr_content_form']]);
    

    【讨论】:

    • 感谢您的回复..我已在此内容类型下添加了一些数据,我可以获取该数据吗?我想显示它
    • 这里的“finance_form”、“hr_content_form”是动态字段,我该如何添加名称?
    • @shythyamenon 不确定我是否关注...现在$types 包含这些类型的所有节点。 “动态字段”是什么意思?您可能想加载其他类型?然后将它们作为变量传递。它们包含不同的字段?然后你需要参考EntityTypeDefinition 来了解它们是什么。
    • 我已在此内容类型下添加了数据。我想获取所有添加的数据。有什么办法吗?
    • @shythyamenon 是的,您必须迭代您的结果并在您的实体中调用 ::view() 方法。但我认为直接使用 View 会更好。
    【解决方案2】:
    SELECT node_field_data.langcode AS node_field_data_langcode, node_field_data.created AS node_field_data_created, node_field_data.nid AS nid
    FROM
    {node_field_data} node_field_data
    WHERE (node_field_data.status = '1') AND (node_field_data.type IN ('finance_form', 'hr_content_form'))
    ORDER BY node_field_data_created DESC
    LIMIT 11 OFFSET 0
    

    【讨论】:

    • 感谢回复。如何在drupal中执行此代码?
    • 创建视图并添加字段,然后 .. 过滤条件 --> 内容类型 --> 检查内容类型名称