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

fill()

Метод fill класса Component в Livewire используется для массового присвоения значений публичным свойствам компонента. Он принимает массив, где ключи соответствуют именам свойств, а значения - данным, которые нужно установить. Метод удобен для заполнения формы данными, особенно при редактировании существующих записей.

Синтаксис

<?php $this->fill([ 'prop1' => 'value1', 'prop2' => 'value2', ]); ?>

Пример

Допустим, у нас есть компонент для редактирования пользователя. Используем метод fill для заполнения свойств компонента данными из полученной модели:

<?php namespace AppLivewire; use LivewireComponent; use AppModelsUser; class EditUser extends Component { public $userId; public $name; public $email; public $role; public function mount($id) { $user = User::find($id); if ($user) { $this->fill([ 'userId' => $user->id, 'name' => $user->name, 'email' => $user->email, 'role' => $user->role, ]); } } public function render() { return view('livewire.edit-user'); } } ?>
<div> <input type="text" wire:model="name" placeholder="Name"> <input type="email" wire:model="email" placeholder="Email"> <select wire:model="role"> <option value="admin">Admin</option> <option value="user">User</option> </select> <p>Editing user ID: {{ $userId }}</p> </div>

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

<div> <input type="text" wire:model="name" placeholder="Name" value="John Doe"> <input type="email" wire:model="email" placeholder="Email" value="john@example.com"> <select wire:model="role"> <option value="admin" selected>Admin</option> <option value="user">User</option> </select> <p>Editing user ID: 5</p> </div>

Пример

Метод fill также можно использовать для заполнения свойств компонента в ответ на действие пользователя. Например, после загрузки данных из внешнего источника:

<?php namespace AppLivewire; use LivewireComponent; use IlluminateSupportFacadesHttp; class UserProfile extends Component { public $profileData = []; public $bio; public $location; public $website; public function loadProfile($apiData) { $this->fill([ 'bio' => $apiData['bio'] ?? '', 'location' => $apiData['location'] ?? '', 'website' => $apiData['website'] ?? '', ]); $this->profileData = $apiData; } public function refreshData() { $response = Http::get('https://api.example.com/user/profile'); if ($response->successful()) { $this->loadProfile($response->json()); } } public function render() { return view('livewire.user-profile'); } } ?>
<div> <button wire:click="refreshData">Load Profile</button> @if(!empty($bio)) <p><strong>Bio:</strong> {{ $bio }}</p> <p><strong>Location:</strong> {{ $location }}</p> <p><strong>Website:</strong> {{ $website }}</p> @endif </div>

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

<div> <button wire:click="refreshData">Load Profile</button> <p><strong>Bio:</strong> Developer from Russia</p> <p><strong>Location:</strong> Moscow</p> <p><strong>Website:</strong> example.com</p> </div>

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

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