回答:
$model = entity_load_single('field_collection_item', $model_id);
$node = $model->hostEntity();
echo $node->nid;
field_get_items('field_collection_item', $field_collection, 'field_FIELD_NAME');
そのフィールドコレクションエンティティの名前付きフィールドの値の配列を返します。エンティティメタデータラッパーを使用することもできます(これを行うための新しい洗練された方法を考えます:-p)。のfield_collection_item
代わりにのラッパーをロードすることを指定するだけですnode
。
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']);
}
field_MYCOLLECTIONFIELD
ノードのフィールドコレクションフィールドのマシン名に置き換えます。