【问题标题】:Session flash message timeout in LaravelLaravel 中的会话闪烁消息超时
【发布时间】:2018-11-13 07:13:21
【问题描述】:

我使用控制器在 Laravel 页面中创建了 flash 消息。显示良好,但需要在 flash 消息中添加超时

if($location_vaidation>0){
     $material_details->location_id=$requested_location;     
     }
     else{
        Session::flash('success', 'please fill the form with valid data');
        return Redirect::to('request');
        exit;           
     }  

在查看页面中

@if( Session::has("success") )
  <div class="alert alert-success alert-block" role="alert">
  <button class="close" data-dismiss="alert"></button>
  {{ Session::get("success") }}
 </div>
 @endif
 @if( Session::has("error") )
  <div class="alert alert-danger alert-block" role="alert">
  <button class="close" data-dismiss="alert"></button>
  {{ Session::get("error") }}
 </div>
 @endif
 <div class="flash-message"></div>

【问题讨论】:

  • 什么超时?你的意思是淡出 Flash 消息?

标签: php laravel laravel-5


【解决方案1】:

使用 Jquery 函数试试这个

$("document").ready(function(){
    setTimeout(function(){
       $("div.alert").remove();
    }, 5000 ); // 5 secs

});

【讨论】:

    【解决方案2】:

    您可能希望它自动关闭/淡出您的警报消息,这将是一个平滑的淡入淡出,并且您确实需要 jquery

    $(".alert").fadeTo(2000, 500).slideUp(500, function(){
        $(".alert").slideUp(500);
    });
    

    【讨论】:

      【解决方案3】:

      在标题中添加:

      <script src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@2.8.2/dist/alpine.min.js"></script>
      

      然后在刀片中使用它如下:

      @if (session($messageKey))
          <div x-data="{show: true}" x-init="setTimeout(() => show = false, 5000)" x-show="show">
              <div class="alert alert-success">
                  {{ session($messageKey) }}
              </div>
          </div>
      @endif
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-19
        • 2019-08-01
        • 1970-01-01
        • 2019-07-09
        • 2018-04-22
        • 1970-01-01
        • 1970-01-01
        • 2016-11-26
        相关资源
        最近更新 更多