首页 > 解决方案 > 加入/联合来自多个 Drupal 节点类型的内容

问题描述

我继承了一个无头 Drupal 站点,并且需要通过每个节点中的 ID 查询来连接多个节点,因为我无法修改节点本身。任何指导将不胜感激,因为我很迷茫。我已经尝试过连接和联合的变体(我读过的其中一些已被弃用?)无论如何,我发现没有一种方法有效。

node type = houses 
field needed  = title 
ID for join = nid
Join = housing_override.field_house.target_id

node type = housing_override
field needed = title
field needed = field_application_types_ref
ID for join = field_house.target_id

node type = housing_rent_open_close
field needed = title
field needed = field_global_term.target_id
field needed = field_closes.value
field needed = field_opens.value
field needed = field_programs.target_id
ID for join = field_house.target_id
Join = housing_override.field_house.target_id

从连接返回数组的函数:

public function apiHousingOpenClose()  {  
$nids = \Drupal::entityQuery('node')->accessCheck(FALSE)
->condition('type', array('housing_override'))
? ? ? ? ? ? ? ? ? 
->sort('title')->execute();
    
$nodes = \Drupal\node\Entity\Node::loadMultiple($nids);
    
$response = array();
    
foreach ($nodes as $node) {
    
$response_obj['field_house_id'] = $field_house->target_id;
$response_obj['other_field1'] = $other_field1->target_id;
$response_obj['other_field2'] = $other_field2->title;
$response_obj['other_field3'] = $other_field3->title;
$response_obj['other_field4'] = $other_field4->name;
$response_obj['other_field5'] = $other_field5->target_id;
 
echo json_encode($response);
    
exit();
}

感谢您提供的任何见解。

标签: mysqldrupal-8

解决方案


推荐阅读