解析PHP当前用户更新失败,但会话已更新

解析PHP当前用户更新失败,但会话已更新,php,session,parse-platform,php-parse-error,Php,Session,Parse Platform,Php Parse Error,在Parse PHP SDK中,如果当前用户希望更改其电子邮件/用户名,请正常解析检查其他用户是否使用了用户名,如果使用了用户名,则会返回错误,现在这很好,目前为止工作正常,但问题是会话会自动更新为新值,但在该值失败的情况下 因此,基本上,当前用户的会话已更新,即使不是后端会话 复制步骤 $currentUser = Parse\ParseUser::getCurrentUser(); echo "Current Username is : ". $currentUser->get("us

在Parse PHP SDK中,如果当前用户希望更改其电子邮件/用户名,请正常解析检查其他用户是否使用了用户名,如果使用了用户名,则会返回错误,现在这很好,目前为止工作正常,但问题是会话会自动更新为新值,但在该值失败的情况下

因此,基本上,当前用户的会话已更新,即使不是后端会话

复制步骤

$currentUser = Parse\ParseUser::getCurrentUser();
echo "Current Username is : ". $currentUser->get("username");

if ($currentUser) {
  $currentUser->set("username", "ww");
try {
        $currentUser->save();
        echo "UPDATED";
    } catch (Parse\ParseException $er) {
        $ex = $er->getMessage();
        echo "<br> Error: ". $ex;
    }
}
$currentUser=Parse\ParseUser::getCurrentUser();
echo“当前用户名为:”$当前用户->获取(“用户名”);
如果($currentUser){
$currentUser->set(“用户名”、“ww”);
试一试{
$currentUser->save();
回声“更新”;
}catch(Parse\ParseException$er){
$ex=$er->getMessage();
回声“
错误:.$ex; } }
下面是一段视频,介绍了更多内容:


由于您已在PHP应用程序中更新了对象,因此除非您重置操作,否则它将在本地保持更新。因此,您可以:

  • 保存旧用户名并在catch方法中反转操作;或
  • 在catch方法中使用
    $currentUser->fetch()
    ;或
  • 实例化一个新的用户对象,在此新对象中进行更改尝试,最后
    $currentUser->fetch()
    仅在成功的情况下
请参见以下一种可能的解决方案:

$currentUser = Parse\ParseUser::getCurrentUser();
echo "Current Username is : ". $currentUser->get("username");

if ($currentUser) {
  $currentUser->set("username", "ww");
try {
        $currentUser->save();
        echo "UPDATED";
    } catch (Parse\ParseException $er) {
        $currentUser->fetch();
        $ex = $er->getMessage();
        echo "<br> Error: ". $ex;
    }
}
$currentUser=Parse\ParseUser::getCurrentUser();
echo“当前用户名为:”$当前用户->获取(“用户名”);
如果($currentUser){
$currentUser->set(“用户名”、“ww”);
试一试{
$currentUser->save();
回声“更新”;
}catch(Parse\ParseException$er){
$currentUser->fetch();
$ex=$er->getMessage();
回声“
错误:.$ex; } }
由于您已经更新了PHP应用程序中的对象,因此除非您重置操作,否则它将在本地保持更新。因此,您可以在catch方法中保存旧用户名并反转操作,或者在catch方法中执行
$currentUser->fetch()
,或者实例化一个新的用户对象,在此新对象中进行更改尝试,最后执行
$currentUser->fetch())
只有在成功的情况下。@DaviMacêdo在我做了
$currentUser->fetch()
之后工作得很好,你能在答案中发表你的评论吗?这样我就可以把它标记为已接受的答案,谢谢!很高兴知道!刚刚发布了答案。