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

Метод updatedFoo

Метод updatedFoo в компоненте Livewire автоматически вызывается после изменения свойства с именем foo. Это специальный хук жизненного цикла, который позволяет реагировать на обновление конкретного свойства и выполнять дополнительные действия, например, обновлять другие свойства, выполнять валидацию или отправлять запросы к серверу. Метод принимает текущее значение свойства в качестве параметра.

Синтаксис

<?php namespace AppLivewire; use LivewireComponent; class ExampleComponent extends Component { public $foo; public function updatedFoo($value) { // Logic here } } ?>

Пример

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

<?php namespace AppLivewire; use LivewireComponent; class NameComponent extends Component { public $name = ''; public $processedName = ''; public function updatedName($value) { $this->processedName = strtoupper($value); } public function render() { return view('livewire.name-component'); } } ?>
<input type="text" wire:model="name" placeholder="Enter name"> <p>Processed: {{ $processedName }}</p>

При вводе текста в поле, метод updatedName преобразует значение в верхний регистр и сохраняет в свойство $processedName. Результат выполнения кода при вводе 'john':

<input type="text" placeholder="Enter name"> <p>Processed: JOHN</p>

Пример

Метод updatedFoo может выполнять валидацию и изменять другие свойства в зависимости от значения:

<?php namespace AppLivewire; use LivewireComponent; class ProductComponent extends Component { public $quantity = 1; public $price = 10; public $total = 10; public function updatedQuantity($value) { if ($value < 1) { $this->quantity = 1; $value = 1; } $this->total = $value * $this->price; } public function render() { return view('livewire.product-component'); } } ?>
<input type="number" wire:model="quantity" min="1"> <p>Price: ${{ $price }}</p> <p>Total: ${{ $total }}</p>

При изменении количества, метод пересчитывает итоговую сумму. Если ввести значение меньше 1, оно будет автоматически исправлено. Результат выполнения кода при вводе '3':

<input type="number" min="1"> <p>Price: $10</p> <p>Total: $30</p>

Пример

Метод может получать как новое значение свойства, так и старое значение при указании второго параметра:

<?php namespace AppLivewire; use LivewireComponent; class LoggerComponent extends Component { public $status = 'draft'; public $log = ''; public function updatedStatus($value, $old) { $this->log = "Status changed from {$old} to {$value}"; } public function render() { return view('livewire.logger-component'); } } ?>
<select wire:model="status"> <option value="draft">Draft</option> <option value="published">Published</option> <option value="archived">Archived</option> </select> <p>Log: {{ $log }}</p>

При изменении статуса, метод сохраняет сообщение с указанием старого и нового значения. Результат выполнения кода при выборе 'published':

<select> <option selected>Draft</option> <option>Published</option> <option>Archived</option> </select> <p>Log: Status changed from draft to published</p>

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

  • метод updatingFoo,
    который вызывается перед обновлением свойства
  • метод updating,
    который вызывается перед обновлением любого свойства
  • метод updated,
    который вызывается после обновления любого свойства
  • метод mount,
    который инициализирует состояние компонента
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить