Параметр маршрута в Livewire
Пусть адрес страницы поста заканчивается номером, а на экране этот номер неоткуда взять. В классе компонента его нет, и человек видит пустой блок вместо номера открытой записи.
В маршруте кусок адреса помечают
именем. При первом появлении
компонента метод mount
получает это значение и может
записать его в свойство для
шаблона.
Давайте зададим макет страницы
в app.blade.php:
<!DOCTYPE html>
<html>
<head>
<title>Page</title>
</head>
<body>
{{ $slot }}
</body>
</html>
Давайте создадим компонент
ShowPost:
php artisan make:livewire ShowPost --class
Давайте добавим маршрут с
параметром id:
<?php
use App\Livewire\ShowPost;
Route::livewire('/posts/{id}', ShowPost::class);
?>
Давайте в классе заведём свойство и
метод mount, который
запишет номер из адреса:
<?php
namespace App\Livewire;
use Livewire\Component;
class ShowPost extends Component
{
public $postId;
public function mount($id)
{
$this->postId = $id;
}
public function render()
{
return view('livewire.show-post');
}
}
?>
Давайте в шаблоне выведем номер внутри корневого блока:
<div>
{{ $postId }}
</div>
Создайте компонент ShowEmployee
как страницу. В адресе номер
работника, этот номер выведите
на странице.