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

Публичное сохранение в Livewire

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

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

php artisan storage:link

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

php artisan make:livewire PostCover --class

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

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

Давайте в методе save положим файл в публичное хранилище:

<?php namespace App\Livewire; use Livewire\Component; use Livewire\WithFileUploads; class PostCover extends Component { use WithFileUploads; public $photo; public $path = ''; public function save() { $this->path = $this->photo ->storePublicly( path: 'covers' ); } public function render() { return view( 'livewire.post-cover' ); } } ?>

Давайте в шаблоне оформим форму и вывод пути:

<div> <form wire:submit="save"> <input type="file" wire:model="photo" > <button type="submit"> Save </button> </form> {{ $path }} </div>

Создайте компонент EmployeeCover. Фото работника сохраняется так, чтобы его можно было открыть по адресу сайта.

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