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

Привязка записи в Livewire

Пусть пост уже лежит в базе, а на странице заголовок копируют в отдельное свойство компонента. При сохранении значение снова перекладывают в модель вручную, и легко забыть лишнее поле.

Публичное свойство может хранить саму модель Eloquent. Поле связывают с колонкой записи через wire:model="post.title", а кнопка сохранения вызывает save у модели.

Пусть в проекте есть модель Post и запись с номером 1:

<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Post extends Model { protected $fillable = [ 'title', ]; } ?>

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

php artisan make:livewire PostBind --class

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

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

Давайте загрузим запись в mount и сохраним из save:

<?php namespace App\Livewire; use App\Models\Post; use Livewire\Component; class PostBind extends Component { public Post $post; public function mount() { $this->post = Post::find(1); } public function save() { $this->post->save(); } public function render() { return view('livewire.post-bind'); } } ?>

Давайте свяжем поле с записью и добавим кнопку:

<div> <input type="text" wire:model="post.title" > <button type="button" wire:click="save"> Save </button> </div>

Создайте компонент EmployeeBind. Поле имени связано с записью работника, сохранение пишет имя обратно в базу.

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