如何以编程方式将内容类型article的所有节点添加到drupal 8中的一组中?

时间:2019-02-07 17:12:31

标签: php drupal-8

我正在寻找一种将内容类型article的所有节点添加到组id = 25的组的解决方案,是否有任何方法可以通过PHP代码添加一次,我听说过groupadd函数,但是我不知道如何使用它,请帮帮我

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

如何使用以上功能?

有什么方法可以进行一步操作吗?

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

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

2 个答案:

答案 0 :(得分:0)

也许会帮助

$ group-> addContent($ entity,'group_node:article');

plugin_id实际上是节点类型

请尝试一下。

答案 1 :(得分:0)

让我尝试解释更多

使用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意味着您可以添加到多个组,因此在这里您可以尝试自己的逻辑,即要添加到哪个组,希望这样做有意义。