为什么Parse Class不能保存?

时间:2017-01-16 16:20:25

标签: php ios parse-platform sdk

我正在使用Parse数据库构建一个IOS应用程序,并意识到能够使用PHP连接到数据库会很有用。我已下载PHP SDK并进行设置以便连接。我可以检索信息,甚至设置了一个testObject,所以我知道连接是有效的。但是,我在更新User类中的图像时遇到问题。我已将ACL设置为具有公共读写访问权限,并且我特意尝试将一个图像上载到一个用户帐户。

任何了解语法的人都可以告诉我为什么我的代码不起作用吗?

我正在接受"好的到目前为止"消息,所以我知道失败是关于尝试捕获,但不知道它为什么输出既不成功也不错。

$file = ParseFile::createFromFile("filename.jpg", "image.jpg", "image/jpg");
$file->save();

$getUser = new ParseQuery("_User");
$getUser->equalTo("objectId", "2Ic26GaYRE");
$results = $getUser->first();
$results->set("profilePic", $file);

echo "Okay so far";

try {
    $results->save();
    echo 'success';
}
catch (ParseException $ex) {
    echo 'error';
    echo $ex->getMessage();
}

由于

1 个答案:

答案 0 :(得分:1)

选项A
我建议使用云代码来修改用户。您可以通过编辑cloud / main.js文件在解析服务器上使用javascript创建云功能。

基本上,你可以创建一个这样的函数:

$("input")
  .keyup(function() {
    var value = $(this).val();
   switch($(this)[0].id){
     case 'MyID':
         $("span").text("UserID" + value);
         break;
   }
  })
  .keyup();

并从您的客户端调用此功能。

Parse.Cloud.define("modifyuser", function(request, response){
  var query = new Parse.Query(Parse.User);
  query.equalTo('objectId', request.params.objectId);
  query.find({
    useMasterKey: true,
    success: function(results){
      if(results.length>0){
        var user = results[0];
        user.set("SOMEPARAMETER",true);
        user.save().then(
            function(result){
            },
            function(error){
                console.log("Error: " + error.code + " " + error.message);
            });
        }
      }
    },
    error: function(error){
            response.error('query error: '+ error.code + " : " + error.message);
    }
  });
});

选项B 你可以试试这个php版本!

$ParseCloud::run("modifyuser", ["objectId" => "THEUSEROBJECTID"]);