解析 PHP 当前用户更新失败但会话已更新
Parse PHP current user update failed but session updated
In Parse PHP SDK 如果当前用户想改变他的 Email/username 正常 Parse 检查用户名是否被其他用户使用,如果使用它会 return 错误,现在这很好,到目前为止工作完美,但问题是会话会自动更新到失败的新值。
所以基本上当前用户的会话已更新,即使它不是针对后端
重现步骤
$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;
}
}
这里有一段视频解释得更多:
由于您在 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;
}
}
In Parse PHP SDK 如果当前用户想改变他的 Email/username 正常 Parse 检查用户名是否被其他用户使用,如果使用它会 return 错误,现在这很好,到目前为止工作完美,但问题是会话会自动更新到失败的新值。
所以基本上当前用户的会话已更新,即使它不是针对后端
重现步骤
$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;
}
}
这里有一段视频解释得更多:
由于您在 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;
}
}