#jquery #laravel #layout #laravel-blade
#jquery — запрос #laravel #макет #laravel-blade #jquery
Вопрос:
Почему @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')
Я добавляю @yield('script')
in layouts.footer
для написания кода скрипта, используя @section (‘скрипт’)
макеты.файл нижнего колонтитула
....
<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
для этого. подробнее о стеке
макеты.файл нижнего колонтитула
<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