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

Метод pull

Метод pull класса Component извлекает данные из запроса (чаще всего из формы) и заполняет соответствующие публичные свойства компонента Livewire. В метод передаётся массив ключей, которые соответствуют именам полей ввода, а также названиям свойств компонента. После выполнения метода свойства компонента обновляются полученными значениями, а шаблон перерисовывается автоматически. Это удобный способ импортировать данные формы в компонент без ручного присваивания каждого свойства.

Синтаксис

<?php $this->pull(['field1', 'field2', 'field3']); ?>

Также можно передать ассоциативный массив для переименования ключей при извлечении:

<?php $this->pull([ 'input_name' => 'property_name', 'user_email' => 'email' ]); ?>

В этом случае значение из поля input_name попадёт в свойство property_name, а значение из user_email - в свойство email.

Пример

Пусть у нас есть компонент с публичными свойствами $name, $email и $age. В методе submit используем pull для заполнения этих свойств из запроса:

<?php namespace AppLivewire; use LivewireComponent; class UserProfile extends Component { public $name = ''; public $email = ''; public $age = 0; public function submit() { $this->pull(['name', 'email', 'age']); // свойства $name, $email и $age теперь содержат данные из запроса } public function render() { return view('livewire.user-profile'); } } ?>
<form wire:submit="submit"> <input type="text" wire:model="name" placeholder="Имя"> <input type="email" wire:model="email" placeholder="Email"> <input type="number" wire:model="age" placeholder="Возраст"> <button type="submit">Отправить</button> </form> <div> <p>Имя: {{ $name }}</p> <p>Email: {{ $email }}</p> <p>Возраст: {{ $age }}</p> </div>

После отправки формы метод pull заполнит свойства компонента значениями из полей ввода, и они отобразятся в шаблоне.

Пример

Используем ассоциативный массив для извлечения данных с переименованием ключей. Поля в форме имеют имена user_name и user_email, а свойства компонента называются $name и $email:

<?php namespace AppLivewire; use LivewireComponent; class UserProfile extends Component { public $name = ''; public $email = ''; public function submit() { $this->pull([ 'user_name' => 'name', 'user_email' => 'email' ]); } public function render() { return view('livewire.user-profile'); } } ?>
<form wire:submit="submit"> <input type="text" name="user_name" wire:model="name" placeholder="Имя"> <input type="email" name="user_email" wire:model="email" placeholder="Email"> <button type="submit">Отправить</button> </form> <div> <p>Имя: {{ $name }}</p> <p>Email: {{ $email }}</p> </div>

Теперь значения из полей user_name и user_email будут извлечены и сохранены в свойства $name и $email соответственно.

Пример

Если нужно извлечь только часть данных из запроса, можно комбинировать pull с другими методами, например, only. Однако pull сам позволяет выбрать только нужные ключи:

<?php namespace AppLivewire; use LivewireComponent; class UserProfile extends Component { public $name = ''; public $email = ''; public $age = 0; public $city = ''; public function submit() { // извлекаем только name и email $this->pull(['name', 'email']); } public function render() { return view('livewire.user-profile'); } } ?>
<form wire:submit="submit"> <input type="text" wire:model="name" placeholder="Имя"> <input type="email" wire:model="email" placeholder="Email"> <input type="number" wire:model="age" placeholder="Возраст"> <input type="text" wire:model="city" placeholder="Город"> <button type="submit">Отправить</button> </form> <div> <p>Имя: {{ $name }}</p> <p>Email: {{ $email }}</p> <p>Возраст: {{ $age }}</p> <p>Город: {{ $city }}</p> </div>

После выполнения метода pull свойства $name и $email будут обновлены, а $age и $city останутся без изменений.

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

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