Toastr使用Laravel会话变量作为警报消息

时间:2015-04-26 20:12:16

标签: javascript twitter-bootstrap laravel laravel-5 toastr

我想要从Bootstrap警报切换到Toastr警报。我目前的工作设置是:

@if (Session::has('flash_notification.message'))

     <div class="alert alert-{{ Session::get('flash_notification.level') }}">
         <button type="button" class="close" data-dismiss="alert" 
             aria-hidden="true">&times;</button>
         {{ Session::get('flash_notification.message') }}
     </div>

 @endif

但我现在正努力在JS中访问Laravel的会话变量。

实际的JS工作示例是:

$(document).ready(function() {

    toastr.info('Page Loaded!');

    });

});

但是,我想使用Laravel的会话变量来包含不同的消息和警告框:

@if (Session::has('flash_notification.message'))

    <script>
        $(document).ready(function() {

            toastr.options.timeOut = 4000;
            toastr.{{ Session::get('flash_notification.level') }}('{{ Session::get('flash_notification.message) }}');

        });
    </script>

@endif

我收到了unexpected ;等各种错误。任何帮助将非常感激。非常感谢。

1 个答案:

答案 0 :(得分:2)

由于您使用的是刀片模板,因此可以使用{{ var/function() }}输出变量/函数的内容。如果您想要未转义的输出,可以使用{!! var/function() !!}

因此,您的问题的解决方案是,您需要使用{{ }}标记包围您的PHP代码:

@if (Session::has('flash_notification.message'))

    <script>
        $(document).ready(function() {

        toastr.{{ Session::get('flash_notification.level') }}
        ('{{ Session::get('flash_notification.message') }}');

        });
    </script>

@endif