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

Несколько файлов в Livewire

Давайте теперь возьмём пост, к которому нужно приложить не одну картинку, а несколько. Обычное поле без особой настройки оставляет только первый выбранный файл, остальные теряются.

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

Давайте создадим компонент PostAlbum:

php artisan make:livewire PostAlbum --class

Давайте добавим маршрут и страницу:

<?php Route::get('/posts/album', function () { return view('posts-album'); }); ?>
<x-layout> <livewire:post-album /> </x-layout>

Давайте заведём массив для файлов:

<?php namespace App\Livewire; use Livewire\Component; use Livewire\WithFileUploads; class PostAlbum extends Component { use WithFileUploads; public $photos = []; public function render() { return view( 'livewire.post-album' ); } } ?>

Давайте в шаблоне добавим поле и список имён:

<div> <input type="file" wire:model="photos" multiple > @foreach ($photos as $photo) <div wire:key="{{ $photo->getClientOriginalName() }}"> {{ $photo->getClientOriginalName() }} </div> @endforeach </div>

Создайте компонент EmployeeAlbum. Человек выбирает несколько файлов работника, и на странице виден список их имён.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить