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

Скачивание файла в Livewire

Пусть отчёт по посту уже лежит в хранилище на сервере, а со страницы его не забрать. Прямая ссылка на закрытую папку в браузере не откроется, и человек остаётся без файла.

Кнопку можно связать с методом компонента, который вернёт ответ с методом download: тогда файл уйдёт в браузер как скачивание. Путь к файлу на диске собирают через функцию storage_path.

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

php artisan make:livewire PostReport --class

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

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

Давайте добавим метод export, который отдаст файл:

<?php namespace App\Livewire; use Livewire\Component; class PostReport extends Component { public function export() { return response()->download( storage_path( 'app/reports/report.txt' ) ); } public function render() { return view( 'livewire.post-report' ); } } ?>

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

<div> <button type="button" wire:click="export" > Download </button> </div>

Создайте компонент EmployeeReport. Кнопка отдаёт браузеру файл работника, который уже лежит в хранилище.

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