我只想使用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