Laravel 6 @yield() 在 include() 方法中不起作用
Posted
技术标签:
【中文标题】Laravel 6 @yield() 在 include() 方法中不起作用【英文标题】:Laravel 6 the @yield() not working in include() method 【发布时间】:2020-12-06 07:40:10 【问题描述】:为什么@yield('script')
不起作用?
我在 php laravel Blade master.blade.php 文件中创建一个布局,像这样
@include('layouts.header')
@include('layouts.sidebar')
<div class="main-panel">
<!-- Navbar -->
@include('layouts.navbar')
<!-- End Navbar -->
<div class="content">
<div class="container-fluid">
@yield('content')
</div>
</div>
</div>
</div>
@include('layouts.footer')
我在layouts.footer
中添加@yield('script')
用于使用@section('script')layouts.footer 文件编写脚本代码
....
<script src=" asset('./assets/js/core/jquery.min.js') "></script>
@yield('script')
...
</body>
</html>
当我在刀片页面中使用 section('script')
时,它不起作用我像这样使用 @yield('script')
@extends('layouts.master')
@section('content')
<div>
<button class="btn btn-sm btn-outline-primary" id="modal">
Sponsored
</button>
</div>
@endsection
// JQuery code
@section('script')
<script>
$(document).on("click", "#modal", function ()
alert('hello world');
);
</script>
@endsection
【问题讨论】:
【参考方案1】:Blade 允许您推送到命名堆栈,这些堆栈可以在另一个视图或布局中的其他位置呈现。这对于指定子视图所需的任何 javascript 库特别有用:
这是include
scripts
和links
的错误方式。
您可以使用@stack
。更多关于stack
layouts.footer 文件
<script src=" asset('./assets/js/core/jquery.min.js') "></script>
@stack('script')
刀片文件
@push('script')
<script>
$(document).on("click", "#modal", function ()
alert('hello world');
);
</script>
@endpush
【讨论】:
以上是关于Laravel 6 @yield() 在 include() 方法中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的@yield() 没有显示内容?在 Laravel PHP 模板中
Laravel - @yield 和 @section 之间的区别?