In Blade language, there is a simple @include() command where the view path will be pass as a parameter. But what if you are not sure whether the view exists or not? Or what if you want to make it a dynamic variable?
A simple example: @include (‘partials.header’, [‘title’ => ‘First Page’])
Three complicated cases:
1. @includeIf :- View May Be Non-Existent
If the included view file does not exist, Laravel will give fatal error and will not load the page. To avoid this problem, you can check the existence with:
- @if (view() -> exists(‘partials.header’)) or
- can use a special command of @includeIf which are @includeIf (‘partials.header’, [‘title’ => ‘First Page’])
2. @includeWhen :- Include Only With Condition
Typical code will be:
@if ($load_header)
@include(‘partials.header’, [‘title’ => ‘First Page’])
@endif
The code can be written shorter with a special @includeWhen:
@includeWhen($load_header, ‘partials.header’, [‘title’ => ‘First Page’])
3. @includeFirst :- Fallback “Default” View
This case is relevant for projects with multiple “themes” of Blade views.
As an example, you want to load a header for a particular theme but it may not exist, so you fallback to the “default” header.
@includeFirst(‘adminlte.header’, ‘default.header’, [‘title’ => ‘First Page’])
In this case, Laravel will try to load adminlte.header Blade but if it does not exist, the other plan would be to load default.header with the same parameter.
Credit to : https://bit.ly/3DLrW2d