2016-07-23 5 views
1

나는 Drupal 7 사이트를 가지고 있습니다. 다음과 같이 내 모듈에 노드를 만드는 오전 : - 나는 위의 newNode 에코 경우노드가 생성되었지만 드루팔 (Drupal 7에 DB에 삽입되지 않음)

$newNode = new stdClass(); 
    $newNode->title = "Hello Node"; 
    $newNode->type = "product"; 
    node_object_prepare($newNode); // Sets some defaults. 
    $newNode->field_prod_type = 1; 
    $newNode->field_prod_cost = 125.00; 

    node_submit($newNode); // Prepare node for saving 
    node_save($newNode); 

내가 성공적인 새로운 노드 ID

echo "<pre>; print_r($newNode); exit(); 

이슈 생성받을 수 있나요 - 내가 확인할 때
을하지만, 데이터베이스에서 위의 노드 세부 정보가있는 새 레코드가 표시되지 않습니다.

도움이 되었습니까?

+0

Ao 사이트/노드/[nidofnewnode]에 갈 때 무엇이 ​​보입니까? 노드 생성은 괜찮은 것처럼 보이지만 필드 값을 잘못 설정 한 것으로 보입니다. '$ newNode-> field_prod_type = 1; '$ newNode-> field_prod_cost = 125.00; ' – justtry

+0

@justtry. 그래 너가 옳아. 노드는 'yoursite/node/[nidofnewnode]'에 액세스 할 수 있지만 데이터베이스에는 값이 표시되지 않습니다. –

답변

0

노드 값을 준비하려면 node_object_prepare 함수를 사용해야합니다.

노드는 게시되지 않으며 (상태 = 1) 사용자가 연결되지 않습니다 (uid = 0?). 마지막으로 필드의 형식은 항상 2 차원 (언어 및 델타) 인 배열입니다. 당신이 당신의 '노드'테이블에 보면 그런 다음 코드는 다음

$newNode->field_prod_type['und'][0] = 1; 
$newNode->field_prod_cost['und'][0] = 125.00; 

을해야합니다, 당신은 반환 꾸벅 꾸벅에 대한 기록이 있어야합니다. 그러나 배열로 올바르게 포맷하지 않으면 필드 테이블 ('field_data_field_prod_type'및 'field_data_field_prod_cost')에 레코드를 가질 수 없습니다.

노드를 저장할 때 오류 메시지가 있습니까?

관련 문제