Закрытое свойство в Livewire
Давайте теперь представим, что номер поста лежит в публичном свойстве. Браузер видит его в разметке и может отправить другое значение перед следующим запросом.
Атрибут Locked помечает поле, которое можно показывать, но нельзя менять из запроса. Значение задаётся на сервере и остаётся таким, даже если клиент прислал подмену.
Давайте создадим компонент
PostLock:
php artisan make:livewire PostLock --class
Давайте добавим маршрут и страницу:
<?php
Route::get('/posts/lock', function () {
return view('posts-lock');
});
?>
<x-layout>
<livewire:post-lock />
</x-layout>
Давайте подключим атрибут и заведём закрытое поле с номером поста:
<?php
namespace App\Livewire;
use Livewire\Attributes\Locked;
use Livewire\Component;
class PostLock extends Component
{
#[Locked]
public $postId = 3;
public function render()
{
return view('livewire.post-lock');
}
}
?>
Давайте выведем номер в шаблоне:
<div>
{{ $postId }}
</div>
Создайте компонент EmployeeLock.
Номер работника виден
на странице, но браузер
не может его подменить.