我只是想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;