user_save函数不会更新我的用户但会抛出异常: SQLSTATE [23000]:完整性约束违规:1062重复条目''关键字'名称' 因为它假设我需要创建一个新的用户对象,并且它与另一个具有相同的名称。 我的代码如下:
// load user object
$account = user_load($user->uid);
// update some user property
$saved = $account->selected_keyword;
if(isset($saved))
array_push($termIds,$saved);
$account->selected_keyword = $termIds;
// save existing user
try {
user_save((object) array('uid' => $account->uid), (array) $account);
}catch(Exception $e){
print_r($e);exit;
}
所以我该如何解决?
答案 0 :(得分:1)
我理解我的问题是userId
,我通过drupal_anonymous_user()
函数获取了用户ID,因此user_save
正在创建新用户,而我错误地需要使用全局{ {1}}
此外,我需要通过字段模块的$user;
函数创建新字段。
答案 1 :(得分:0)
user_save()
需要$account
作为第一个参数,而不是第二个参数。您应该为编辑创建一个数组:
$account = user_load($user->uid);
$edit = array(
'field_some_custom_field' => array(
'und' => array(
0 => array(
'value' => $new_value,
),
),
),
);
user_save($account, $edit);
您应该适应selected_keyword
属性的案例。