我正在尝试将POST数据从ajax处理到laravel控制器,但我无法访问它。这是我在AJAX中所做的。
$.ajax({
type:'POST',
url:'/complete_ca_fin',
data: {fin_id: id},
success:function(data){
console.log(data);
$('#modal_complete').modal('hide');
$('html, body').animate({
scrollTop: 0 }, "slow");
$('#message_form').empty().css('display','block').removeClass('alert-danger').addClass('alert-success').text('Finished Good CA has been successfully completed.');
$('#message_form').fadeOut(4000);
setTimeout(function(){
window.location = '/quality_control';
}, 3000);
refresh_check = true;
window.onbeforeunload = null;
},
error: function (data) {
console.log('Error: ' + data);
} // end of error
}); // ajax
应在控制器中访问 id
。这是我的路线
Route::post('/complete_ca_fin', 'DatasheetController@complete_ca_fin');
这是我的控制器
public function complete_ca_fin(Request $request) {
$id = $request->id;
$complete_ca = FinishedCA::findOrFail($id);
if ($complete_ca){
$complete_ca->status = '5';
$complete_ca->save();
return 'success';
}
//return 'success';
}
当我尝试返回$id
进行测试时我注意到它是空的(我不知道它是否与它有关)但我知道ajax中的var id
有价值,因为我在控制台测试了它。
答案 0 :(得分:0)
使用Input::get('id');
代替请求,所以你的方法会喜欢这个
public function complete_ca_fin(Request $request) {
$id = Input::get('id');
$complete_ca = FinishedCA::findOrFail($id);
if ($complete_ca){
$complete_ca->status = '5';
$complete_ca->save();
return 'success';
}
//return 'success';
}
答案 1 :(得分:0)
您正在使用findOrfail
,这意味着如果没有电子邮件,您将投放404,您想要验证它是否存在,而不是404不是
public function complete_ca_fin(Request $request) {
$id = $request->id;
$complete_ca = FinishedCA::find($id);
if ($complete_ca->exists()){
$complete_ca->status = '5';
$complete_ca->save();
return 'success';
}
//return 'success';
}