Knoten-ID der Feldsammlung abrufen

7

Ich habe den folgenden Code. Ich kann das Feldsammlungselement mit entity_load_single laden. Ich möchte in der Lage sein, die Knoten-ID für ein bestimmtes Feldsammlungselement abzurufen. Wie kann ich das erreichen?

function dc_car_guide_model($model_id)
{
    $model = entity_load_single('field_collection_item', $model_id);
    //How can I get nid?
}
Chris Muench
quelle

Antworten:

9
$model = entity_load_single('field_collection_item', $model_id);
$node = $model->hostEntity();
echo $node->nid;
Chris Muench
quelle
Ist es möglich, die Daten in einem bestimmten Feld abzurufen, das in der Feldsammlung verwendet wird? Ein bisschen abseits weiß ich aber bin nur neugierig.
Bernard Nandwa
Ja, die Feld-API funktioniert auch für Felder in Feldsammlungsentitäten. field_get_items('field_collection_item', $field_collection, 'field_FIELD_NAME');gibt ein Array von Werten für ein benanntes Feld in dieser Feldsammlungsentität zurück. Sie können auch die Entity-Metadaten-Wrapper verwenden (dies ist die neue, raffinierte Methode, um dies zu tun :-p). Geben Sie einfach an, dass Sie einen Wrapper für a field_collection_itemanstelle von a laden node.
Thirdender
0

Verwenden von EntityFieldQuery:

  $query = new EntityFieldQuery();
  $query->entityCondition('entity_type', 'node')
    ->fieldCondition('field_MYCOLLECTIONFIELD', 'value',  $model_id, '=');
  $result = $query->execute();

  if (!empty($result['node'])) {
    $nid = key($result['node']);
  }

Ersetzen Sie field_MYCOLLECTIONFIELDdurch den Computernamen des Felds Feldsammlung auf Ihrem Knoten.

drinkdecaf
quelle