我正在创建一个模块,允许用户在这种情况下更新单个字段,即用户实体。
下面的代码是我最初用来使其工作并测试模块的其他元素的方法示例
global $user;
$account = user_load($user->uid);
$edit = (array) $account;
$edit['field_lastname']['und'][0]['value'] = 'test';
user_save($account, $edit);
然而,这绕过了Drupal中其他地方定义的任何字段验证。我不想重现其他地方写的任何验证 - 这不是Drupal方式!
我的问题是:是否可以调用Drupal 7中的一个函数来更新单个字段的值。我想这样的函数会清除相应的缓存,调用字段验证等。
我知道解决方案与我当前基于用户对象的解决方案完全不同。我只是不能为我的生活在API中找到合适的功能。我不知道我是否正在寻找一个保存功能的事实是问题 - 并且还有一些其他必要的步骤。
感谢任何帮助。