dth42345 2018-08-10 13:43
浏览 138
已采纳

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

I am trying to get all nodes of a certian type from drupal. I have tried many ways to achieve that, but maybe due to my lack of Drupal custom module programming experience I couldn't achieve my desire. the closest way that I found on the web, is this:

    $nids = \Drupal::entityQuery('node')->condition('type','news')->execute();
    $nodes =  \Drupal
ode\Entity\Node::loadMultiple($nids); 
  • the first line returns an object of id's
  • the second line returns the nodes of those id's

this looks easy and straight forward. but, this is the output! { "59": { "in_preview": null }, "61": { "in_preview": null } }

can someone please help, what is wrong? and is this the correct way to do it ?

I want to take the nodes then search every one of them ( I am making some sort of search engine) so I expect some kind of an object that I can then extract the heading, body ... etc, from. is this the correct way ?

  • 写回答

1条回答 默认 最新

  • dsc80135 2018-08-11 09:31
    关注

    This actually returns node objects

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

    perhaps your output gives minimal results and not objects. If you inspect with a proper debugger you will see the objects.

    Perhaps its better to actually get one node object at a time if you expect too many nodes to be returned from the query

    $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
    ode\Entity\Node::load($nid); 
      $body = $node->body->value;
      $title = $node->title->value;
      //...
    }  
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 BDSBAS-B1C和B1C信号有什么不同
  • ¥15 在半圆平面内随机生成点坐标
  • ¥15 系统容量变化的几种多址方式TDMA, CDMA,FDMA,OFDMA 对比,应该给的是一个曲线 图,随着系统容量的增加,几种多址方式性能的对比 图,MATLAB程序仿真折线图
  • ¥15 用visual Studio 写c ++只运行上一个旧代码的运行结果是怎么回事
  • ¥15 系统容量变化的几种多址方式(TDMA,FDMA,OFDMA,CDMA)对比(相关搜索:曲线图)
  • ¥15 worldclim 历史及未来气候数据矫正
  • ¥15 ajax服务器不能下载
  • ¥15 运用c++和opencv实现二维码的识别和三维坐标的建立
  • ¥100 理想汽车的ADB为什么到了国外换了SIM就可以打开?
  • ¥15 k210烧入flash报错error:2005