Создание компонента в Livewire
На странице поста нужен отдельный блок с подписью. Его можно набрать прямо в общем шаблоне, но тогда разметка и PHP-класс для этого блока нигде явно не связаны.
Компонент - это PHP-класс и Blade-шаблон, связанные по имени. Оба файла можно создать руками, но легко промахнуться с папкой или с именем представления, которое класс должен вернуть.
Artisan собирает эту пару сам:
кладёт класс и шаблон в нужные
места и прописывает связь между
ними. Флаг --class нужен,
чтобы получились именно класс
и отдельный шаблон, а не один
общий файл.
Давайте заведём компонент карточки поста. Давайте в корне проекта выполним команду:
php artisan make:livewire PostCard --class
Команда создаст два файла: класс
PostCard.php и шаблон
post-card.blade.php.
Давайте откроем класс и оставим
в нём только метод render,
который возвращает представление
компонента:
<?php
namespace App\Livewire;
use Livewire\Component;
class PostCard extends Component
{
public function render()
{
return view('livewire.post-card');
}
}
?>
Шаблон - это разметка, которую компонент показывает на странице. Вся эта разметка лежит внутри одного внешнего тега. Несколько тегов рядом, без общей обёртки, фреймворк не примет.
Давайте обернём подпись в div,
чтобы на странице было видно,
что компонент вывелся:
<div>
Post
</div>
Создайте классовый компонент карточки работника.