it-swarm-ko.tech

노드에서 필드 컬렉션을 어떻게로드합니까?

필드 컬렉션이 몇 개인 노드가 있습니다.

node_load() 출력을 보면 다음과 같습니다.

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

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

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

                )

        )

Entity_id가 6, 7, 8 등인 콜렉션에 포함 된 필드 데이터를 실제로로드하는 데 어떤 API 함수를 사용할 수 있습니까?

73
Justin

도! 필드 수집 모듈을 살펴 봐야했습니다.

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

동일한 트릭을 수행하는 래퍼 함수도 있습니다.

field_collection_item_load($id, $reset = FALSE)

또는 의견에 따라 다음을 사용하십시오.

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

여러 컬렉션을로드하려면 (예 : 추가 버튼이있는 경우).

40
Vasiliy Grotov

올바른 개정판을로드하려면 field_collection_field_get_entity () 를 사용해야합니다.

사용법 예 :

$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

Entity API 모듈에서 entity_metadata_wrapper를 사용할 수 있습니다.

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

모든 컬렉션을 반복 할 수도 있습니다.

$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