Php Laravel 7通知和;AJAX:方法markAsRead()不会在返回时更新结果

Php Laravel 7通知和;AJAX:方法markAsRead()不会在返回时更新结果,php,ajax,laravel,notifications,laravel-7,Php,Ajax,Laravel,Notifications,Laravel 7,我正在实现一个下拉菜单,其中包含来自Laravel的7个通知的数据库通知。我希望用户能够在不重新加载页面的情况下取消通知。我的控制器方法是: public function markAsRead($id) { auth()->user()->unreadNotifications->where('id', $id)->markAsRead(); $notificationArray = array(); $user = Auth::user();

我正在实现一个下拉菜单,其中包含来自Laravel的7个通知的数据库通知。我希望用户能够在不重新加载页面的情况下取消通知。我的控制器方法是:

public function markAsRead($id) {
  auth()->user()->unreadNotifications->where('id', $id)->markAsRead();

  $notificationArray = array();
    $user = Auth::user();
    foreach ($user->unreadNotifications as $notification) {
        $notificationArray[] = $notification;
    }

  return view("layouts/notifications_list", ["notifications" => compact("notificationArray")]);
}
我的AJAX:

$.ajax({
     method: "GET",
     url: ' {{ route('notifications.markNotificationAsRead', ['id']) }}'.replace('id', notificationId),
     cache: false,
      success: function(response) {
         $('#notifications-dropdown').empty();
         $('#notifications-dropdown').html(response);

     },
  });
我得到的是已渲染的值。它类似于行
auth()->user()->unreadNotifications->where('id',$id)->markAsRead()被忽略。

但是,当我刷新页面时,列表会更新。

您的路线是什么样的<代码>'{{route(“…
可能有太多的空间。一如既往,请使用浏览器的DevTools/console/Network选项卡确保没有错误/发送到正确的URL调用函数没有问题。我使用dd进行了双重检查。问题是返回的列表是旧列表,好像没有进行任何更改。重定向后,正确的结果是s但是dom更新可能会出现问题。请在浏览器devtools的网络选项卡中或通过控制台检查ajax调用的响应。在成功函数中记录(响应),并查看响应是否包含ajax请求所针对的通知记录made@Donkarnash事实上,这就是我面临的问题工作时,它不会返回预期的输出。如果尝试
$notificationsArray=$user->fresh()->unreadNotifications->all()
而不是foreach(),会发生什么情况。还可以使用dd()检查$notificationsArray中是否存在以$id接收作为路由参数的记录。您的路由是什么样子的?
{route>(“…
可能有太多的空间。一如既往,请使用浏览器的DevTools/console/Network选项卡确保没有错误/发送到正确的URL调用函数没有问题。我使用dd进行了双重检查。问题是返回的列表是旧列表,好像没有进行任何更改。重定向后,正确的结果是s但是dom更新可能会出现问题。请在浏览器devtools的网络选项卡中或通过控制台检查ajax调用的响应。在成功函数中记录(响应),并查看响应是否包含ajax请求所针对的通知记录made@Donkarnash事实上,这就是我面临的问题如果正常工作,它不会返回预期的输出。如果尝试
$notificationsArray=$user->fresh()->unreadNotifications->all()
而不是foreach,会发生什么情况。还可以使用dd()检查$notificationsArray中是否存在接收到作为路由参数的$id的记录