代码之家  ›  专栏  ›  技术社区  ›  vyshnavi

如何通过程序将内容类型文章的所有节点添加到Drupal8中的一个组中?

  •  0
  • vyshnavi  · 技术社区  · 7 年前

    我正在寻找一个将内容类文章的所有节点添加到group id=25的组中的解决方案,是否有任何方法可以通过php代码添加它们,我听说了group中的add content函数,但我不知道如何使用它,请帮助我

    Group::addContent(ContentEntityInterface $entity, $plugin_id, $values = [])
    

    如何使用上述功能?

    有什么方法可以做一个步骤吗?

    group::addcontent(contentEntityInterface$entity,$plugin id,$values=[])
    

    我需要所有内容类型的文章分组,gid=25

    2 回复  |  直到 7 年前
        1
  •  0
  •   hazrat    7 年前

    我再解释一下

    使用drupal\node\entity\node; 使用drupal\group\entity\group;

    /**
    * Implements hook_ENTITY_TYPE_insert().
    */
    function yourmodulename_node_insert(Node $node) {
      if ($node->bundle() == 'article') {
        $pluginId = 'group_node:article';
        // Here create some logic to load/chose the group id's you want to 
        // add the content to
        // ... 
        foreach ($group_ids as $gid) {
          $group = Group::load($gid);
          $group->addContent($node, $pluginId);
        }
      }
    }
    

    我希望它会更清楚,foreach意味着你可以添加到多个组中,这样你就可以尝试自己的逻辑,让你想添加到哪个组中,希望它会有意义。

        2
  •  0
  •   hazrat    7 年前

    可能会有帮助

    $group->添加内容($entity,'group_node:article');

    插件ID实际上是节点类型

    请试一试。