0

node_save()記事の画像フィールドの値を変更するために使用したいだけで、次のコードを使用しています。

$node = node_load(1);
$node->field_image["und"][0]["filename"] = $file_name;
node_save($node);

F5キーを押しても、記事の画像は変更されません。

私のコードに何か問題がありますか?

4

2 に答える 2

1

このような問題に対処する最も簡単な方法は、Develモジュールを使用することです。

あなたのコードではこれを行うことができます:

$node = node_load(1);
dsm($node);
....
node_save($node);
dsm($node);

Devel dsm()関数はノードのプロパティを出力し、編集したい値をチェックできるようになります。

上記の例では、編集の前後を確認できます。すべてが正しいように見える場合は、キャッシュをクリアするだけの問題です。

于 2013-03-13T09:32:18.910 に答える
0

私がこのようなことをしたら、それは最高ではないかもしれませんが、それは私にとってはうまくいきました:

$file = file_load($node->field_image['und'][0]['fid']);
unset($node->field_image['und'][0]);
file_delete($file);

$file_path = drupal_realpath('sites/default/files/image.png');
$file = (object) array(
          'uid' => 1,
          'uri' => $file_path,
          'filemime' => file_get_mimetype($file_path),
          'status' => 1,
 ); 
$file = file_copy($file, 'public://');
$node->field_im['und'][0] = (array) $file;
于 2013-03-13T06:59:28.600 に答える