File

Для прикрепления файла к ресурсу используется библиотека spatie/laravel-medialibraryarrow-up-right.

Регистрация медиа-коллекции в модели.

app/Models/Post.php
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;

class Post extends Model implements HasMedia
{
    use HasFactory;
    use InteractsWithMedia;

    public function registerMediaCollections(): void
    {
        // Коллекция для файла
        $this->addMediaCollection('file')->singleFile();
    }
}

В livewire компоненте нужно подключить трейт HasMedia и добавить новое публичное свойство, которое совпадает с названием медиа-коллекции в модели.

Для загрузки доступны форматы, перечисленные в config/livewire.php

Вывод поля:

Опции:

  • readonly - только для чтения

Last updated