如何更新调用适当验证的单个字段的值

joe*_*der 6 drupal drupal-7 drupal-fapi

我正在创建一个模块,允许用户在这种情况下更新单个字段,即用户实体.

下面的代码是我最初用于使其工作并测试模块的其他元素的方法的示例

global $user;
$account = user_load($user->uid);
$edit = (array) $account;
$edit['field_lastname']['und'][0]['value'] = 'test';
user_save($account, $edit);
Run Code Online (Sandbox Code Playgroud)

然而,这绕过了Drupal中其他地方定义的任何字段验证.我不想重现其他地方写的任何验证 - 这不是Drupal方式!

我的问题是:Drupal 7中是否有一个函数可以调用来更新单个字段的值.我想这样的函数会清除相应的缓存,调用字段验证等.

我知道解决方案将与我当前基于用户对象的解决方案完全不同.我只是不能为我的生活在API中找到合适的功能.我徘徊是否我正在寻找一个保存功能的事实是问题 - 并且还有一些其他必要的步骤.

任何帮助感激不尽.

Mat*_* V. 1

查看drupal_form_submit函数。它允许您通过代码提交表单。在这种情况下,您可以将其用于用户编辑表单,然后该表单将触发适当的验证。