it-swarm-tr.com

Bir alan koleksiyonunu bir düğümden nasıl yüklerim?

Üzerinde birkaç alan koleksiyonları olan bir düğüm var.

node_load() çıkışına baktığımda şunu görüyorum:

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

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

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

                )

        )

6, 7, 8 vb. Entity_id değerine sahip koleksiyondaki alan verilerini fiilen yüklemek için hangi API işlevini kullanabilirim?

73
Justin

Doh! Alan toplama modülüne bakmalıydım:

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

Aynı hileyi yapan bir sarmalayıcı işlevi de vardır:

field_collection_item_load($id, $reset = FALSE)

veya yoruma göre şunları kullanın:

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

birden fazla koleksiyon yüklemek için (örneğin Daha fazla ekle düğmeleriniz varsa).

40
Vasiliy Grotov

Doğru düzeltmeyi yüklemek için field_collection_field_get_entity () kullanılmalıdır.

Örnek kullanım:

$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

Kullanabilirsiniz entity_metadata_wrapperEntity API modülünden:

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

Tüm koleksiyonları da döngüleyebilirsiniz:

$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