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

Вычисляемое свойство get

Вычисляемое свойство get в Livewire позволяет объявлять динамические свойства, которые вычисляются на основе других свойств или состояния компонента. Чтобы создать вычисляемое свойство, нужно определить метод с префиксом get и суффиксом Property, например, getFullNameProperty. Livewire автоматически вызывает этот метод при обращении к свойству в шаблоне.

Вычисляемые свойства удобны для форматирования строк, фильтрации массивов, выполнения сложных преобразований данных без необходимости хранения промежуточных результатов в публичных свойствах.

Синтаксис

Для создания вычисляемого свойства определите в классе компонента метод с именем getИмяСвойстваProperty:

<?php namespace AppLivewire; use LivewireComponent; class ExampleComponent extends Component { public function getFullNameProperty() { return 'John Doe'; } public function render() { return view('livewire.example-component'); } } ?>

В шаблоне обращайтесь к свойству через его имя без префикса get и суффикса Property, как к обычному публичному свойству:

<div> <p>{{ $fullName }}</p> </div>

Пример 1

Создадим компонент, который вычисляет полное имя из свойств $firstName и $lastName через вычисляемое свойство $fullName:

<?php namespace AppLivewire; use LivewireComponent; class UserProfile extends Component { public $firstName = 'John'; public $lastName = 'Doe'; public function getFullNameProperty() { return $this->firstName . ' ' . $this->lastName; } public function render() { return view('livewire.user-profile'); } } ?>
<div> <p>First name: <input type="text" wire:model="firstName"></p> <p>Last name: <input type="text" wire:model="lastName"></p> <p>Full name: {{ $fullName }}</p> </div>

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

<div> <p>First name: <input type="text" value="Jane"></p> <p>Last name: <input type="text" value="Smith"></p> <p>Full name: Jane Smith</p> </div>

Пример 2

Вычисляемое свойство может возвращать результат обработки массива. Создадим компонент, который вычисляет количество элементов массива:

<?php namespace AppLivewire; use LivewireComponent; class ArrayCounter extends Component { public $items = ['a', 'b', 'c', 'd', 'e']; public function getCountProperty() { return count($this->items); } public function render() { return view('livewire.array-counter'); } } ?>
<div> <p>Items: {{ implode(', ', $items) }}</p> <p>Count: {{ $count }}</p> </div>

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

<div> <p>Items: a, b, c, d, e</p> <p>Count: 5</p> </div>

Пример 3

Вычисляемое свойство может возвращать отфильтрованный массив. Создадим компонент, который вычисляет четные числа из массива:

<?php namespace AppLivewire; use LivewireComponent; class EvenNumbers extends Component { public $numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; public function getEvenProperty() { return array_filter($this->numbers, function($num) { return $num % 2 == 0; }); } public function render() { return view('livewire.even-numbers'); } } ?>
<div> <p>All numbers: {{ implode(', ', $numbers) }}</p> <p>Even numbers: {{ implode(', ', $even) }}</p> </div>

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

<div> <p>All numbers: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10</p> <p>Even numbers: 2, 4, 6, 8, 10</p> </div>

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

  • публичные свойства $public,
    которые хранят данные компонента
  • метод render,
    который возвращает шаблон компонента
  • директиву wire:model,
    которая связывает поле ввода со свойством компонента
  • директиву wire:click,
    которая вызывает метод при клике по элементу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить