【问题标题】:How to show flash message after ajax success in laravel?如何在laravel中ajax成功后显示flash消息?
【发布时间】:2021-08-17 14:43:45
【问题描述】:

我想在重定向到通过 ajax 请求查看后显示一条 flash 消息。

这是我的控制器代码

    \Session::flash('success', __('Password change successfully. Please Login again')); 
     $data            = array();
     return response()->json([
          'success' => true,
          'data'    => $data,
        ]);

这是我的 ajax 请求

  $.ajax({
   url: my-url
   method: "POST",
   data: new FormData(this),
   contentType: false,
   cache: false,
   processData: false,
   dataType: "json",
   success: function(response) {
    if (response.success == true) {
      var url ="{{ route('admin.dashboard') }}"; //the url I want to redirect to
            $(location).attr('href', url);
    }  
}, //success end

});  

它重定向到我的刀片视图,我使用下面的代码来显示一个 Flash 消息

   @if (session()->has('success'))
       <div class="alert alert-success alert-solid alert-dismissible shadow-sm p-3 mb-5 rounded" 
          role="alert">
          {{ session('success') }}
       <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                  <span aria-hidden="true">&times;</span>
        </button>
     </div>
  @endif

但它没有显示任何消息。

谁能告诉我如何显示一条消息?

【问题讨论】:

    标签: jquery mysql ajax laravel


    【解决方案1】:

    \Session::flash 仅适用于下一个请求。这意味着您无法在页面刷新一次或重定向后获得它的值。您可能面临的情况是您正在放置 Flash 数据,然后通过 ajax 调用将其取回,然后再次将其重定向到另一个页面/URL。试试reflash() 方法。它将帮助您为接下来的几个请求保留数据。

    \Session::flash('success', __('Password change successfully. Please Login again'));
    \Session::reflash(); // add this line
    

    欲了解更多信息:https://laravel.com/docs/6.x/session#flash-data

    【讨论】:

      猜你喜欢
      • 2016-10-09
      • 2016-02-15
      • 1970-01-01
      • 2019-08-22
      • 2016-11-03
      • 1970-01-01
      • 1970-01-01
      • 2015-09-06
      • 2021-03-02
      相关资源
      最近更新 更多