답변:
$node = node_load($nid);
$node_wrapper = entity_metadata_wrapper('node', $node);
$node_wrapper->field_myfield->set(1);
$node_wrapper->save();
엔티티 메타 데이터 랩퍼는 노드에서 필드 값을 설정하거나 읽을 수있는 좋은 방법입니다!
업데이트 된 시간, 개정에 대한 노드 메타 데이터를 업데이트하지 않고 필드 값만 업데이트하려면 function을 사용하십시오 field_attach_update()
.
예:
$node = node_load($nid);
$field_language = field_language('node', $node, 'field_myfield');
$node->field_fieldname[$field_language][0]['value'] = 'some value';
field_attach_update('node', $node);
때로는 다음을 사용하여 노드 정적 캐시를 재설정해야 할 수도 있습니다 resetCache(array($nid))
.
entity_get_controller('node')->resetCache(array($node->nid));
방금 이것을 구현 했으며이 코드가 저에게 효과적이라는 것을 알았습니다.
$node = node_load($nid);
if (isset($node)) {
$field_language = field_language('node', $node, 'field_myfield');
$node->field_fieldname[$field_language][0]['value'] = 'some value';
node_save($node);
}
field_fieldname을 업데이트 할 때 4 행에서 이것을 사용한다는 것을 알았습니다.
$node->field['field_myfield'][0]['value'] = 'some value';
작동하지 않았다.