Я делаю проект laravel и хочу загрузить уведомление через ajax-вызов.Я написал код, чтобы сделать это.Это мой вызов ajax.
$(document).ready(function () {
$('#notificationBar').on('click', function () {
getNotifications();
});
function getNotifications(){
var getNotificationURL = '{{ route('getNotifications') }}';
var token = '{{ Session::token() }}';
$.ajax({
method: 'post',
url : getNotificationURL,
data : {
_token : token
},
success:function (data) {
if(data === null){
}else{
$('#notificationBar').find('#notificationDropDown').find('#tempId').append('<a style="background:#e0e0d1; margin:2px 2px;" href="'+data.username+'"><img src="'+data.url+'" class="w3-circle" style="height:40px;width:40px;margin:4px 4px;" alt="Avatar"> <b> '+data.name+'</b> '+data.msg+'</a>');
}
}
});
}
});
, и это мой маршрут
Route::post('getnotifications', [
'uses' => 'NotificationController@getNotifications',
'as' => 'getNotifications'
]);
, маршрут будет направлен на этот метод в контроллере уведомлений
public function getNotifications(Request $request){
$noti = DB::table('notifications')->where('accepter', Auth::user()->id)->where('status', 1)->where('ajax_call',true)->where('important',true)->first();
if(count($noti)>0){
$new_noti = Notifications::find($noti->id);
$new_noti->ajax_call = false;
$new_noti->update();
$notification = DB::table('notifications')->leftjoin('users','users.id','notifications.current_user')->where('id', $noti->id)->first();
$pro_ulr = asset('/img/'.$notification->pic);
$arr = array(
"username" => $notification->username,
"url" => $pro_ulr,
"name" => $notification->name,
"msg" => $notification->msg
);
return response()->json($arr);
}else{
return null;
}
}
MyПроблема в том, что эта функция не работает, как я хочу.Таблица базы данных не обновляется, а json кажется пустым.Что-то не так с моим кодом?