gpt4 book ai didi

php - 以编程方式从 drupal 8 获取所有节点

转载 作者:行者123 更新时间:2023-12-05 02:15:31 25 4
gpt4 key购买 nike

我正在尝试从 drupal 获取 certian 类型的所有节点。我已经尝试了很多方法来实现这一点,但也许由于我缺乏 Drupal 自定义模块编程经验,我无法实现我的愿望。我在网上找到的最接近的方式是:

    $nids = \Drupal::entityQuery('node')->condition('type','news')->execute();
$nodes = \Drupal\node\Entity\Node::loadMultiple($nids);
  • 第一行返回一个id的对象
  • 第二行返回那些id的节点

这看起来简单直接。但是,这是输出!
{
“59”:{
“in_preview”:空
},
“61”:{
“in_preview”:空
}
}

有人可以帮忙吗,有什么问题吗?这是正确的方法吗?

我想获取节点然后搜索它们中的每一个(我正在制作某种搜索引擎)所以我希望得到某种对象,然后我可以从中提取标题、正文...等。这是正确的方法吗?

最佳答案

这实际上返回了节点对象

$nodes =  \Drupal\node\Entity\Node::loadMultiple($nids); 

也许您的输出只提供最少的结果而不是对象。如果您使用适当的调试器进行检查,您将看到这些对象。

如果您希望从查询中返回太多节点,那么一次实际获取一个节点对象可能更好

$query = \Drupal::entityQuery('node')
->condition('status', 1) //published or not
->condition('type', 'news') //content type
->pager(10); //specify results to return
$nids = $query->execute();

foreach ($nids as $nid) {
$node = \Drupal\node\Entity\Node::load($nid);
$body = $node->body->value;
$title = $node->title->value;
//...
}

关于php - 以编程方式从 drupal 8 获取所有节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51787910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com