Макет страницы в Livewire
Давайте теперь возьмём страницу черновиков. Общая шапка сайта с меню и названием приложения ей не нужна: на экране должен остаться сам список, без чужого оформления.
На классе компонента задаётся
атрибут Layout с именем
нужного макета. Тогда страница
сядет в этот файл, а не в общий
каркас сайта.
Давайте создадим макет
board.blade.php:
<!DOCTYPE html>
<html>
<head>
<title>Board</title>
</head>
<body>
{{ $slot }}
</body>
</html>
Давайте соберём компонент
PostBoard:
php artisan make:livewire PostBoard --class
Давайте повесим на класс
атрибут Layout:
<?php
namespace App\Livewire;
use Livewire\Attributes\Layout;
use Livewire\Component;
#[Layout('layouts::board')]
class PostBoard extends Component
{
public function render()
{
return view('livewire.post-board');
}
}
?>
Давайте в web.php свяжем
адрес и класс:
<?php
use App\Livewire\PostBoard;
Route::livewire('/drafts', PostBoard::class);
?>
Давайте в шаблоне компонента выведем подпись блока:
<div>
Drafts
</div>
Создайте компонент EmployeeBoard
как страницу /staff и
посадите его в отдельный макет
без общей шапки сайта.