With Blade it seems the yield
does not work with included parts. How can I fill a section defined inside an included part in the parent template?
It seems this is a known issue: https://github.com/laravel/framework/issues/8970
<body>
@yield('body')
<body>
<html>
@include('template-body')
@yield('other')
</html>
@extends('template-html')
@section('body')
Hello World! (does not work)
@endsection
@section('other')
Does work
@endsection
what you are doing will give you an error. you can include pages on the template and other sub pages. it just depends on what you are doing and how you doing it. what you should have done is:
//app.layout
<!DOCTYPE html>
<html>
<head>
<title>@yield('title')</title>
<your-css-files>
@yield('styles')
<your-script files>
@yield('scripts')
</head>
<body>
@include('your page')
@yield('content')
</body>
</html>
then on your pages you do:
@extends(app.layout)
@section('content')
<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
@include('your page')
@endsection
on the samepage you can call your styles and scripts as
@section('styles')
//css files
@stop
@section('scripts')
// javascript files
@stop