РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗pplwSpPpJs 16 of 102 menu
◀ ▶

Свойство как JSON в Livewire

Давайте теперь представим, что у поста несколько мелких полей, город и подпись, и хранить их порознь в компоненте неудобно.

Атрибут Json держит массив одним значением свойства: Livewire корректно передаёт его между сервером и браузером, а в коде удобно менять отдельные ключи.

Давайте создадим компонент PostMeta:

php artisan make:livewire PostMeta --class

Давайте добавим маршрут и страницу:

<?php Route::get('/posts/meta', function () { return view('posts-meta'); }); ?>
<x-layout> <livewire:post-meta /> </x-layout>

Давайте заведём свойство с атрибутом Json:

<?php namespace App\Livewire; use Livewire\Attributes\Json; use Livewire\Component; class PostMeta extends Component { #[Json] public $meta = ['city' => 'Rome']; public function changeCity() { $this->meta['city'] = 'Paris'; } public function render() { return view('livewire.post-meta'); } } ?>

Давайте выведем город и поставим кнопку смены в шаблоне:

<div> <div>{{ $meta['city'] }}</div> <button wire:click="changeCity"> Change </button> </div>

Создайте компонент EmployeeMeta. Город работника хранится вместе с другими мелкими полями одним значением.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить