如何在解析中将objectId保存到其他类?

时间:2016-09-02 15:44:26

标签: javascript jquery parse-platform

我们有两个班级"User""Schools"。 Schools类包含"objectId"列。

我想将"objectId"列保存到"User"列中的"currentSchool",但它会出现以下错误:

  

{“code”:111,“error”:“关键currentStchool的无效类型,预期*学校,但得到字符串”}

以下是代码段:

Parse.User.signUp(username, password,
{
    firstName: $scope.vm.form.firstName,
    lastName: $scope.vm.form.lastName,
    fullName: $scope.vm.form.firstName + " " + $scope.vm.form.lastName,
    email: email,
    onboardApplicantId: $scope.applicantId,
    currentSchool: schooolId,
    trainingStatus: "videos",
    videoStatus: 0,
    ACL: new Parse.ACL()
}, {
    success: function (user) {
        $("#signupForm").trigger('reset');
        console.log(' success ');
        $('.signupMsg').text("Account created successfully. Please verify your email address.");
        $('.submit-button').attr("disabled", false);
    },
    error: function (user, error) {
        $('.signupMsg').text(error.message);
        $('.submit-button').attr("disabled", false);
    }
});

3 个答案:

答案 0 :(得分:1)

好的,我在这里得到的答案是:

我在“Parse.User.signUp”中这样做:

currentSchool:schooolId,

应该是:

currentSchool:{“_ _ type”:“指针”,“className”:“学校”,“objectId”:schooolId},

我们还需要传递类名,并且需要定义它是一个按类型指针的关系,它在它们之间创建关系。

我希望这对其他人也有帮助。

谢谢guyz

答案 1 :(得分:0)

您必须先创建学校对象实例,然后设置学校objectId,然后将学校实例设置为用户currentSchool。通过这些步骤,您可以将school School的指针保存到schoolId:

示例:

var SchoolClass = Parse.Object.extend("School");
var schoolObject = new SchoolClass();
schoolObject.set("objectId", schoolId);

Parse.User.signUp(username, password,
{
    firstName: $scope.vm.form.firstName,
    lastName: $scope.vm.form.lastName,
    fullName: $scope.vm.form.firstName + " " + $scope.vm.form.lastName,
    email: email,
    onboardApplicantId: $scope.applicantId,
    currentSchool: schoolObject,
    trainingStatus: "videos",
    videoStatus: 0,
    ACL: new Parse.ACL()
}, {
    success: function (user) {
        $("#signupForm").trigger('reset');
        console.log(' success ');
        $('.signupMsg').text("Account created successfully. Please verify your email address.");
        $('.submit-button').attr("disabled", false);
    },
    error: function (user, error) {
        $('.signupMsg').text(error.message);
        $('.submit-button').attr("disabled", false);
    }
});

答案 2 :(得分:-1)

@Mazel Tov实际上是对的:

如果您查看数据库的SCHEMA(如果您运行的是开源版本),那么如果查看用户表中的“学校”选项卡名称,您会看到它的类型是School

这意味着你需要发送一个代表一所学校的Parse.Object而不是它的id :)(因为id是一个字符串,那就是你的错误来自哪里)

所以要修复它:

选项1 :您获取了所拥有的学校列表,然后您可以将它们再次传递给Parse。

选项2 :您可以通过删除列并再次将其作为String类型进行重新更改来更改学校类型。