Including subviews
Take the following template (resources/views/form.blade.php), technically a subview, which itself refers to partials:
@extends('layouts.app')
@section('title', isset($task) ? 'Edit task' : 'Add task')
@section('styles')
<style>
.error-message {
color: red;
font-size: 0.8rem;
}
</style>
@endsection
@section('content')--}}
<form method="POST" action="">@csrf
@isset($task)
@method('PUT')
@endisset
<div>
<label for="title">
Task title
</label><input name="title" id="title" value=""/>
</div>
@error('title')
<p class="error-message">
</p>
@enderror
<div>
<label for="description">
Description
</label><textarea name="description" id="description" rows="5">
</textarea>
</div>
@error('description')
<p class="error-message">
</p>
@enderror
<div>
<label for="long_description">
Long description
</label><textarea name="long_description" id="long_description" rows="10">
</textarea>
</div>
@error('long_description')
<p class="error-message">
</p>
@enderror
<div>
<button type="submit">
@isset($task)
Update task
@else
Add task
@endisset
</button>
</div>
</form>
@endsection
One can embed the above subview into other templates with the keyword @include:
// some other Blade template@include('form', ['task' => $task])
// passing a entity is not required, in which case the form will
// be blank
@include('form')