【发布时间】:2018-04-04 08:04:26
【问题描述】:
大家好。在我的 laravel 应用程序中,我试图检查我的表中是否存在特定 date、subject、grade 的出勤率。如果是这样,我有一个 if statement 设置来根据返回的内容显示期望的结果。
我正在使用 ajax 发出请求,但似乎 ajax 一直在运行错误函数,我似乎没有收到任何错误代码或 internal server error(500, 404, 403, etc) 在我的控制台中,状态返回是 200 ok
这是我的脚本:
$(document).on('change', '#subject', function(event) {
event.preventDefault();
/* Act on the event */
var subject = $('#subject').val();
var grade = $('#grade').val();
var date = $('#date').val();
if (subject != "" && grade != "") {
$.ajax({
url:"/attendence/students",
method:"GET",
data:{"subject_id":subject, "grade_id":grade, "date":date},
dataType:"json",
success:function(data){
$("#result").html(data);
},
error:function(){
$("#result").html('There was an error please contact administrator');
}
});
}
});
这是请求发送到的控制器:
public function students(Request $request)
{
//
$grade = Grade::findOrFail($request->grade_id);
$subject = Subject::findOrFail($request->subject_id);
$students = Student::where('grade_id', $grade->id)->get(['id', 'first_name','middle_name', 'surname', 'grade_id']);
$statuses = Attendence::statuses();
// this check if attendence has been setup for the given date.
// if so prevent user for enter another date
$attendenceExists = Attendence::where([
'grade_id' => $grade->id,
'subject_id' => $subject->id,
'date' => $request->date
])->first();
if ($attendenceExists) {
return response()->json('A recorded attendence already exists for the seleced grade and subject!');
}
else {
return \View::make('attendence.partials.attendence-form')->with(array(
'students' => $students,
'subject' => $subject,
'date' => $request->date,
'statuses' => $statuses
));
}
}
现在,如果此代码返回 true:
// this check if attendence has been setup for the given date.
// if so prevent user for enter another date
$attendenceExists = Attendence::where([
'grade_id' => $grade->id,
'subject_id' => $subject->id,
'date' => $request->date
])->first();
if ($attendenceExists) {
return response()->json('A recorded attendence already exists for the seleced grade and subject!');
}
这里的条件运行并返回正确的结果。但是我上面的else statement 确实运行了,但我没有得到正确的结果。这是我得到的结果:
出现错误,请联系管理员
这表明正在运行的正是这部分 ajax 请求:
error:function(){
$("#result").html('There was an error please contact administrator');
}
令人惊讶的是,当我检查控制台时,我看到的是:
这正是我想要的,但 ajax 否则返回。我做错了吗?
【问题讨论】:
标签: javascript php jquery ajax laravel