Я в настоящее время нахожусь в проекте, который получает приложения, и у части, в которой я сейчас нахожусь, есть грейдер, который назначает ручную оценку для приложения.Возможными значениями являются значения enum, хранящиеся в поле MySQL.По какой-то причине я не могу получить значение для фактического сохранения в базе данных.
Я попробовал Doctrines Rawsql, и я попробовал метод ниже (что я ожидал бы работать).Я провел тестирование, чтобы убедиться, что значения, полученные на стороне сервера, соответствуют полю перечисления SQL.Я попытался включить как можно больше кода, который, по моему мнению, относится к проблеме, но если есть еще что-то, просто дайте мне знать!
Функция для обновления поля в БД.
public function executeSetLongAnswerGrade(sfWebRequest $request){
$application = $this->getRoute()->getObject();
if($request->isXmlHttpRequest()){
if($request->getParameter("methodCall") == "Passion"){
$application->setGradepassion($request->getParameter('value'));
return true;
}elseif($request->getParameter("methodCall") == "Grammer"){
$application->setGradegrammer($request->getParameter('value'));
}elseif($request->getParameter('methodCall') == "Thought"){
$application->setGradethought($request->getParameter('value'));
return true;
}
$application->save();
return true;
}
}
Маршрут:
ajaxSetLongAnswerGrade:
url: /setLongAnswerGrade/:applicationId
class: sfDoctrineRoute
options: { model: Application, type: object}
param: { module: application, action: SetLongAnswerGrade }
requirements:
id: \d+
sf_method: [get]
Ajax Вызов:
$(document).ready(function(){
$('#passionMSG').hide();
$('#grammerMSG').hide();
$('#thoughtMSG').hide();
$('.passionSuccess').hide();$('.passionError').hide();
$('.grammerSuccess').hide();$('.grammerError').hide();
$('.thoughtSuccess').hide();$('.thoughtError').hide();
$('#passion').change(function()
{
$('#passion').attr('disabled', true);
$('.passionSuccess').hide();
$('#passionMSG').slideDown(200);
$('.passionError').hide();
$.ajax({
url: '<?php echo url_for2('ajaxSetLongAnswerGrade', $application) ?>',
data: { methodCall: "Passion",
value: this.value} ,
success: function(data) {
$('#passion').attr('disabled', false);
$('#passionMSG').slideUp(1500)
$('.passionSuccess').delay(1300).slideDown(2000);
},
error: function(){
$('#passion').attr('disabled', false);
$('#passionMSG').slideUp(1500)
$('.passionError').delay(1300).slideDown(2000);
}
});
});});