Blade позволяет это из коробки.
Макеты ( Документы )
<!-- Stored in resources/views/layouts/app.blade.php -->
<html>
<head>
<title>App Name - @yield('title')</title>
</head>
<body>
@section('sidebar')
This is the master sidebar.
@show
<div class="container">
@yield('content')
</div>
</body>
</html>
включает ( Документы )
Затем вы можете добавить небольшие шаблоны в свой макет, используя include
@include('view.name', ['some' => 'data'])
Компоненты ( Документы )
И, наконец, если вы хотите, чтобы у вас был еще больший контроль, попробуйте компоненты.
Примечание : Компоненты теперь немного сложнее, чем были, но по-прежнему имеют обратную совместимость. Таким образом, вы все еще можете определять компоненты следующим образом:
modal.blade (Компонент)
<!-- Modal -->
<div
class="modal fade {{ $class ?? '' }}"
id="{{ $id }}"
tabindex="-1"
role="dialog"
aria-labelledby="{{ $id }}Title"
aria-hidden="true"
>
<div class="modal-dialog modal-dialog-centered {{ $size ?? '' }}" role="document">
<div class="modal-content shadow">
<div class="modal-header">
<h5 class="modal-title font-weight-normal" id="{{ $id }}Title">
{{ $title }}
</h5>
<button type="button" class="close close-icon" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
@if ($form) {{ $action }} @endif
<div class="modal-body">
{{ $body }}
</div>
<div class="modal-footer">
{{ $footer }}
</div>
@if ($form) {!! Form::close() !!} @endif
</div>
</div>
</div>
Использование
@component('components.modal', [
'id' => 'myModalID',
'class' => 'modal-info',
'form' => true
])
@slot('title')
My Modal
@endslot
@slot('action')
{!! Form::open([]) !!}
@endslot
@slot('body')
Some content
@endslot
@slot('footer')
<button type="submit" class="btn">
Submit
</button>
@endslot
@endcomponent