Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
@如果位于脚本标记laravel_Laravel - Fatal编程技术网

@如果位于脚本标记laravel

@如果位于脚本标记laravel,laravel,Laravel,如果声明根本不起作用,如何使其起作用 <script> @if(Session::has('messege')) var type="{{Session::get('alert-type','info')}}" switch(type){ case 'info': toastr.info("{{ Session

如果声明根本不起作用,如何使其起作用

<script>
            @if(Session::has('messege'))
                var type="{{Session::get('alert-type','info')}}"
                switch(type){
                    case 'info':
                        toastr.info("{{ Session::get('messege') }}");
                        break;
                    case 'success':
                        toastr.success("{{ Session::get('messege') }}");
                    break;
                    case 'warning':
                        toastr.warning("{{ Session::get('messege') }}");
                    break;
                    case 'error':
                        toastr.error("{{ Session::get('messege') }}");
                    break;
                }
            @endif
    </script>

希望有人能帮助我:

好的,我发现您提供的代码有一些问题

因此,您不需要将@if包装在标记中。Laravel使用blade解析并自动执行它

此外,您将消息拼写错误,这可能是该语句根本无法执行的原因。当代码不能按预期方式工作时,必须仔细检查语法

您还可以在PHP中设置变量,因为您没有提供任何关于代码存储位置或其显示内容的信息,所以当您可以使用PHP时,不要使用JavaScript。在PHP中使用$symbol设置变量类型。另外,通过删除标记,您可能会得到一个Laravel异常,其中包含有关代码无法工作的更多信息


尝试一下,如果您仍然有问题,请发布Laravel错误,我将再次尝试帮助您。

让我们稍微简化一下。不要依赖PHP来执行超出您需要依赖的JS代码,我的意思是将Session::getmessege转换为JS变量并在JS代码中使用它:

<script type="text/javascript">
    let message = "{{ Session::get('messege') }}";
    let type = "{{ Session::get('alert-type', 'info') }}";

    console.log(message, type);

    if(message){
        switch (type) {
            case "info":
                toastr.info(message);
                break;
            case "success":
                toastr.success(message);
                break;
            case "warning":
                toastr.warning(message);
                break;
            case "error":
                toastr.error(message);
                break;
        }
    }
</script>

只要它位于.blade.php文件中,它就会将Session::get变量转换为JS,然后您就可以在JS代码中使用它,而无需依赖blade@语法。此外,还添加了一个console.log语句,以便查看变量包含的内容,以确认代码是否正在执行。另外,在浏览器中打开开发者工具F12并查看控制台选项卡;如果出现任何问题,应告诉您。

请提供更多相关信息,例如,您在哪里设置会话,以及任何其他相关代码会话正在工作,如果没有脚本标记,则仅显示代码如果没有脚本标记,则不使用Laravel设置会话。您正在尝试在脚本标记内执行blade@if。这是行不通的。如果你不熟悉Laravel、PHP或HTML,请检查我们的Laracasts.com是否没有脚本标记?他正在尝试使用toastr,这是一个JS库,基于PHP中存在的会话值。删除没有意义。但是不能在标记中使用@if。这是Blade的基础知识。以下是工作代码和控制台结果,仅供参考。