node_save()
記事の画像フィールドの値を変更するために使用したいだけで、次のコードを使用しています。
$node = node_load(1);
$node->field_image["und"][0]["filename"] = $file_name;
node_save($node);
F5キーを押しても、記事の画像は変更されません。
私のコードに何か問題がありますか?
node_save()
記事の画像フィールドの値を変更するために使用したいだけで、次のコードを使用しています。
$node = node_load(1);
$node->field_image["und"][0]["filename"] = $file_name;
node_save($node);
F5キーを押しても、記事の画像は変更されません。
私のコードに何か問題がありますか?
このような問題に対処する最も簡単な方法は、Develモジュールを使用することです。
あなたのコードではこれを行うことができます:
$node = node_load(1);
dsm($node);
....
node_save($node);
dsm($node);
Devel dsm()関数はノードのプロパティを出力し、編集したい値をチェックできるようになります。
上記の例では、編集の前後を確認できます。すべてが正しいように見える場合は、キャッシュをクリアするだけの問題です。
私がこのようなことをしたら、それは最高ではないかもしれませんが、それは私にとってはうまくいきました:
$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;