2016-09-02 1 views
3

У нас есть два класса: и "Schools". Класс школ содержит "objectId" столбец.Как сохранить objectId для другого класса в parse?

Я хочу, чтобы сохранить "objectId" столбец в колонке "currentSchool" таблице, но он дает следующее сообщение об ошибке:

{"code":111,"error":"invalid type for key currentSchool, expected *Schools, but got string"}

Вот фрагмент кода:

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

не так ли вам, что вам нужно сохранить указатель, а не строку? –

ответ

1

Хорошо, я получил ответ здесь:

Я делал это в «Parse .User.signUp»:

currentSchool: schooolId,

, где он должен быть:

currentSchool: { "__type": "Указатель", "имя класса": "Школы", "ObjectId": schooolId},

мы должны передать имя класса, а также и нужно определить, что это отношение по указателю типа, которое создает связь между ними.

Я надеюсь, что это поможет и другим.

Thanks guyz

+0

Правильный способ - создать объект Parse Object, а затем установить свой objectId. http://stackoverflow.com/a/39340938/5545574 –

-1

@Mazel Тов на самом деле право :

Если вы заглянете в свою SCHEMA из БД (если вы используете версию с открытым исходным кодом), то если вы посмотрите на Вкладка «Школа» в вашей таблице пользователей, вы увидите, что ее тип - School.

Это означает, что вам нужно отправить Разбор Parse.Object, представляющей школу, а не идентификатор этого :) (потому что идентификатор является строкой, и это, где ваша ошибка исходит от)

Так, чтобы исправить это:

Вариант 1: Вы получили список школ, которые у вас были, и вы можете просто передать их в Парс снова.

Вариант 2: Вы меняете тип школы, удаляя колонку и считывая ее снова как String.

+0

спасибо за ответ .....вариант 2, я не могу это сделать, пожалуйста, объясните, пожалуйста, вариант 1 вкратце: как передать их, чтобы снова разобрать, поскольку я новичок в синтаксическом анализе ... , пожалуйста, предложите –

+0

1) Вы можете сделать это без извлечения. –

0

Необходимо сначала создать экземпляр объекта School, а затем установить школьный объектId, после чего установить экземпляр школы на currentSchool пользователя. С помощью этих шагов вы сохраните указатель класса школы к вам 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); 
    } 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^