POST请求成功但提交对象时数据库未更新

时间:2018-04-18 09:35:34

标签: javascript json

我在Express服务器上创建服务器端React应用程序。该应用程序将是使用Wordpress作为后端的网站的前端。前端通过Wordpress REST API提取和发布内容。

我在将用户信息存储为对象时无法更新。这是我在提交用户个人资料表单时发出的POST请求:

export const updateUserInfo = () => async ( dispatch, getState, api ) => {    

    const postUserInfo = {
        "personal_info": {
            "firstname": "John", 
            "lastname": "Doe"
        }
    }

    await api.post( '/wp-json/wp/v2/users/1', postUserInfo, requestAuth ); 

}

从检查器我可以看到请求成功(200代码)并且有效负载是正确的,但是数据库中用户的名字和姓氏没有更新。

如果我尝试发布一个简单的键值对而不是一个对象,那么数据库就会更新:

// This works! 

export const updateUserInfo = () => async ( dispatch, getState, api ) => {    

    const postUserInfo = {
        "slug": "john-doe"
    }

    await api.post( '/wp-json/wp/v2/users/1', postUserInfo, requestAuth ); 

}

以下是我如何注册personal_info字段:

public function get_user_personal_info() {
    register_rest_field( 'user', 'personal_info', array(
        'get_callback' => array( $this, 'get_user_personal_info_callback' ),
        'update_callback' => null,
        'schema' => null 
    ));        
}     
public function get_user_personal_info_callback( $user ) {  

    $userID = $user[ 'id' ]; 
    $getFirstName = get_user_meta( $userID, 'rcp_user_first', true ); 
    $firstName = ( $getFirstName ) ? $getFirstName : null;
    $getLastName = get_user_meta( $userID, 'rcp_user_last', true ); 
    $lastName = ( $getLastName ) ? $getLastName : null;

    return array(
        'firstname' => $firstName,
        'lastname' => $lastName,
    );           

}

0 个答案:

没有答案
相关问题