kha*_*led 3 php drupal-8 drupal-modules
我正在尝试从 drupal 获取某种类型的所有节点。我尝试了很多方法来实现这一目标,但也许由于我缺乏 Drupal 自定义模块编程经验,我无法实现我的愿望。我在网上找到的最接近的方法是:
$nids = \Drupal::entityQuery('node')->condition('type','news')->execute();
$nodes = \Drupal\node\Entity\Node::loadMultiple($nids);
Run Code Online (Sandbox Code Playgroud)
这看起来简单又直接。但是,这就是输出!
{
"59": {
"in_preview": null
},
"61": {
"in_preview": null
}
}
有人可以帮忙吗,出了什么问题?这是正确的方法吗?
我想获取节点,然后搜索其中的每一个(我正在制作某种搜索引擎),所以我期望某种对象,然后我可以从中提取标题、正文等。这是正确的方法吗?
这实际上返回节点对象
$nodes = \Drupal\node\Entity\Node::loadMultiple($nids);
Run Code Online (Sandbox Code Playgroud)
也许你的输出给出了最小的结果而不是对象。如果您使用适当的调试器进行检查,您将看到这些对象。
如果您期望从查询中返回太多节点,也许一次实际获取一个节点对象会更好
$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;
//...
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15084 次 |
最近记录: |