1
我有2個節點:Drupal 7的孤兒節點引用時刪除節點
- 項目
- 錯誤
一期工程已到錯誤
當我刪除錯誤的節點引用,那些節點引用仍然是孤立的。什麼是最好的清理方法?
UPDATE(這裏是我做的)
function dc_project_management_node_delete($node)
{
if ($node->type == 'bug_request')
{
$bug_request_nid = $node->nid;
$milestone_ids = db_query('SELECT entity_id FROM {field_data_field_bugs_requests} WHERE field_bugs_requests_nid = :bug_request_nid', array(':bug_request_nid' => $bug_request_nid))->fetchCol();
$milestones = entity_load('field_collection_item', $milestone_ids);
foreach($milestones as $milestone)
{
for($k=0;$k<count($milestone->field_bugs_requests['und']);$k++)
{
if ($milestone->field_bugs_requests['und'][$k]['nid'] == $bug_request_nid)
{
unset($milestone->field_bugs_requests['und'][$k]);
}
}
entity_save('field_collection_item', $milestone);
}
}
}
我的問題是當一個bug被刪除時,它仍然顯示爲項目中的孤立節點。看看我做了什麼來解決它,並讓我知道如果這沒關係。 –
是的,這幾乎是我如何做到這一點(除非我可能使用'field_revision_field_bugs_requests'表只是爲了安全) – Clive
field_data *,field_revision_ *之間有什麼區別,他們相同,以便有相同的字段。 –