사용자 정의 모듈에서 노드 필드 값을 삽입하려고합니다. 값은 해당 모듈에서만 삽입되고 해당 노드에 대한 조작은 수행되지 않으므로 후크는 고려하지 않습니다. field_data _... 및 field_revision _... 테이블에 직접 값을 삽입하려고했습니다. 하지만 drupal 또한 field_config 및 field_config_instance 테이블에 값 (직렬화 된)을 blob로 저장한다는 것을 알았습니다. 왜냐하면 두 테이블의 값만 삽입하기 때문에 drupal은 노드에 삽입 한 값을 읽지 않습니다. 나는 DB에 저장된 직렬화를 이해할 수 없었다. 그래서 API 나 기타 깔끔한 방법으로 값을 삽입하는 데 도움이되는 메소드를 찾고 있습니다.drupal에서 노드 필드 값을 프로그래밍 방식으로 삽입 7
제가 성취하고자하는 일에 도움이된다면 도움이 될 것입니다. 감사합니다.
편집 : field_config 테이블의 직렬화 된 내용을 살펴본 후 직렬화 된 데이터가 필드 구성이고 처음 저장시 테이블에 삽입된다는 것을 알았습니다. 내 문제는 admin/content를 통해 첫 번째 값을 저장함으로써 해결되었으며 현재 직접 DB에 삽입 된 데이터는 노드에서 사용할 수 있습니다. 이것은 내가 가지고있는 직렬화 된 데이터입니다 :
a:7:
{s:12:"translatable";
s:1:"0";
s:12:"entity_types";
a:0:{}
s:8:"settings";
a:3:
{s:9:"precision";
s:2:"10";s:5:"scale";
s:1:"2";
s:17:"decimal_separator";
s:1:",";
}
s:7:"storage";
a:5:
{s:4:"type";
s:17:"field_sql_storage";
s:8:"settings";
a:0:{}
s:6:"module";
s:17:"field_sql_storage";
s:6:"active";
s:1:"1";
s:7:"details";
a:1:
{s:3:"sql";
a:2:
{s:18:"FIELD_LOAD_CURRENT";
a:1:
{s:22:"field_data_field_total";
a:1:
{s:5:"value";
s:17:"field_total_value";
}
}
s:19:"FIELD_LOAD_REVISION";
a:1:
{s:26:"field_revision_field_total";
a:1:
{s:5:"value";
s:17:"field_total_value";
}
}
}
}
}
s:12:"foreign keys";
a:0:{}
s:7:"indexes";
a:0:{}
s:2:"id";
s:2:"34";
}
게시물에 언급 된대로 DB 삽입을 직접 입력하면됩니다. – vatzcar
우리가 볼 수있는 코드가 있습니까? – SpaceBeers
실제로 문제가 해결되었습니다. 게시물을 수정하고 세부 사항을 제공했습니다. SpaceBeers에 감사드립니다. – vatzcar