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

Livewire::on

Статический метод on класса Livewire регистрирует глобальный обработчик событий. Он принимает два параметра: имя события и колбэк-функцию, которая выполняется при возникновении этого события. Метод обычно вызывается в методе boot сервис-провайдера или в методе mount компонента.

Синтаксис

<?php use LivewireLivewire; Livewire::on('event-name', function ($param1, $param2) { // Логика обработки }); ?>

Пример

Давайте создадим обработчик глобального события post-created, которое будет логировать сообщение при его вызове:

<?php namespace AppProviders; use IlluminateSupportServiceProvider; use LivewireLivewire; class AppServiceProvider extends ServiceProvider { public function boot() { Livewire::on('post-created', function ($postId, $postTitle) { logger("Post created: ID: $postId, Title: $postTitle"); }); } } ?>

Теперь создадим компонент Livewire, который будет отправлять событие:

<?php namespace AppLivewire; use LivewireComponent; use LivewireLivewire; class PostCreator extends Component { public $title = ''; public function createPost() { $postId = rand(1, 100); Livewire::dispatch('post-created', $postId, $this->title); $this->title = ''; } public function render() { return view('livewire.post-creator'); } } ?>
<div> <input type="text" wire:model="title" placeholder="Enter post title"> <button wire:click="createPost">Create Post</button> </div>

Результат выполнения кода при вызове события:

[2024-01-15 10:30:45] local.DEBUG: Post created: ID: 42, Title: My New Post

Пример с передачей параметров

Обработчик может принимать несколько параметров из события:

<?php namespace AppLivewire; use LivewireComponent; use LivewireLivewire; class UserHandler extends Component { public $message = ''; public function mount() { Livewire::on('user-updated', function ($userId, $userName, $userEmail) { $this->message = "User $userName (ID: $userId) updated. Email: $userEmail"; }); } public function render() { return view('livewire.user-handler'); } } ?>
<div> <div>{{ $message }}</div> <button wire:click="$dispatch('user-updated', [1, 'John Doe', 'john@example.com'])"> Update User </button> </div>

Результат выполнения кода:

<div> <div>User John Doe (ID: 1) updated. Email: john@example.com</div> <button>Update User</button> </div>

Смотрите также

  • метод dispatch,
    который отправляет событие из компонента Livewire
  • метод dispatchSelf,
    который отправляет событие только текущему компоненту
  • метод Livewire::dispatch,
    который отправляет глобальное событие
  • свойство listeners,
    которое определяет локальные обработчики событий компонента
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить