1

Drupal 7 でノードのフィールドにアクセスするにはどうすればよいですか。これを試しましたが、うまくいきません。

 $node=node_load($nid);
 $node->field_num[LANGUAGE_NONE][0]['value']=$num;

もっと具体的に説明する必要があると思います。最初にノードを作成し、次のようにいくつかのフィールドに値を設定します。

 $values = array(
'type' => 'scorings',
'uid' => $user->uid,
'status' => 1,
'comment' => 0,
'promote' => 0,
);
 $entity = entity_create('node', $values);
 $ewrapper = entity_metadata_wrapper('node', $entity);
 $entity->field_rond_nid[LANGUAGE_NONE][0]['value']=$nid_scorekort;
 $entity->field_golfid[LANGUAGE_NONE][0]['value']=$form_state['values']['golfid_1'];
 $ewrapper->save(true);
 entity_save('node', $entity);
 $nid=$entity->nid;

これはうまくいきます。次に、別の関数 (nid を渡す) からこのノードにアクセスし、値を別のフィールド (field_score_1) に設定します。私はこれを試しました:

 $node=node_load($nid, 'my_content type');
 $node->field_score_1[LANGUAGE_NONE][]['value'] = $my_value;

しかし、これは機能しません。node_load がフィールドへのアクセスを許可しないシーム。

4

1 に答える 1

0

あなたのnode_load()電話は間違っています。

node_load()関数宣言の Drupal API ドキュメントは次のとおりです。

node.module node_load($nid = NULL, $vid = NULL, $reset = FALSE)

$vid のように、2 番目のパラメーターは数値ではなく文字列です。

node_load()a を返す場合はFALSE失敗です。

EntityFieldQuery()おそらく、代わりに使用したかったのですか?

于 2013-02-24T18:29:20.927 に答える