2017-01-16 63 views
1

我建立使用解析數據庫中的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

選項A
我會建議使用雲代碼來修改用戶。您可以通過編輯cloud/main.js文件在解析服務器上的javascript中創建雲功能。

基本上,你可以這樣創建一個函數:

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); 
    } 
    }); 
}); 

而且從客戶端調用這個函數。

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

選項B 你可以試試這個PHP版本!

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

    try { 
     $query = new ParseQuery("_User"); 
     $query->equalTo("username", "myUsername"); 
     $results = $query->find($useMasterKey = true); 
     foreach($results as $user) { 
      $user->set('email','[email protected]'); 
      $user->set('profilePic', $file); 
      $user->save($useMasterKey = true); 
     } 
    } 
    catch (ParseException $error) { 
     echo 'Error message: '.$error->getMessage(); 
    } 
+0

恐怕還沒有爲我工作。那是久經考驗的代碼嗎?如果是這樣,我的一定會有一些東西......這太令人沮喪了! :) – Dan

+0

對不起,這是parse.com。現在試試。在使用parse-server時,users表總是需要$ useMasterKey = true。我更新了我的答案 – Cliffordwh

+0

確保您傳遞主密鑰在初始化 – Cliffordwh