我只想使用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);
傑韋利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;
[This] [1]可能有些幫助。 [1]:http://api.drupalize.me/api/drupal/function/EntityMetadataIntegrationTestCase::testImageFields/7 – 2013-03-13 08:26:48