it-swarm.it

Come carico una raccolta di campi da un nodo?

Ho un nodo che ha alcune raccolte di campi su di esso.

Quando guardo node_load() output, vedo:

[field_rich_text_group] => Array
        (
            [und] => Array
                (
                    [0] => Array
                        (
                            [value] => 6
                        )

                    [1] => Array
                        (
                            [value] => 7
                        )

                    [2] => Array
                        (
                            [value] => 8
                        )

                )

        )

Quale funzione API posso usare per caricare effettivamente i dati del campo contenuti nella raccolta che ha un entity_id di 6, 7, 8, ecc?

73
Justin

Doh! Avrei dovuto guardare nel modulo di raccolta dei campi:

entity_load('field_collection_item', array($item_id))
89
Justin

C'è anche una funzione wrapper che fa lo stesso trucco:

field_collection_item_load($id, $reset = FALSE)

o come da commento, utilizzare:

field_collection_item_load_multiple($ids = array(), $conditions = array(), $reset = FALSE)

per caricare più raccolte (ad esempio se si dispone di un Aggiungi più pulsanti ).

40
Vasiliy Grotov

field_collection_field_get_entity () dovrebbe essere usato per caricare la revisione corretta.

Esempio di utilizzo:

$node = node_load(1);
$items = field_get_items('node', $node, 'field_fc');
foreach ($items as $item) {
 $fc = field_collection_field_get_entity($item);
 // Do something.
}
21
jonhattan

Puoi usare entity_metadata_wrapper dal modulo Entity API :

$node_wrapper = entity_metadata_wrapper('node', $node);
$field_collection = $node_wrapper->field_rich_text_group[0]->value();
dpm($field_collection);

Puoi anche eseguire il loop di tutte le raccolte:

$node_wrapper = entity_metadata_wrapper('node', $node);
foreach ($node_wrapper->field_rich_text_group as $field_collection_wrapper) {
  $field_collection = $field_collection_wrapper->value();
  dpm($field_collection);
}
11
milkovsky