---
title: "Skupiny (buckets) — Media Library for Laravel | Roundly"
description: "Deklarujte pomenované skupiny médií na modeli — disky, mime allowlist, viditeľnosť, fallbacky a varianty."
url: https://roundly-consulting.com/sk/open-source/navody/media-library-for-laravel/skupiny
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Media Library for Laravel](https://roundly-consulting.com/sk/open-source/navody/media-library-for-laravel.md)

# Skupiny (buckets)

Pridajte kontrakt HasMedia a trait InteractsWithMedia na akýkoľvek model a deklarujte jeho skupiny v registerMediaBuckets():

```php
use Illuminate\Database\Eloquent\Model;
use RoundlyConsulting\MediaLibrary\Concerns\InteractsWithMedia;
use RoundlyConsulting\MediaLibrary\Contracts\HasMedia;
use RoundlyConsulting\MediaLibrary\Variants\VariantRegistrar;

final class User extends Model implements HasMedia
{
    use InteractsWithMedia;

    public function registerMediaBuckets(): void
    {
        $this->addMediaBucket('avatar')
            ->singleFile()                       // replaces the previous file on add
            ->acceptsMimeTypes(['image/jpeg', 'image/png', 'image/webp'])
            ->useDisk('cold')                    // originals on cold storage
            ->storingVariantsOnDisk('hot')       // derivatives on hot storage
            ->private()                          // visibility: signed URLs only
            ->useFallbackUrl('https://example.com/avatar.png')
            ->registerVariants(function (VariantRegistrar $v): void {
                $v->add('thumb')->fit('crop')->width(120)->height(120)->format('webp');
                $v->add('display')->width(800)->format('webp')->quality(80)->queued();
            });

        $this->addMediaBucket('gallery')->useDisk('public');
    }
}
```

## Builder skupiny

Každá skupina sa konfiguruje fluentným builderom:

```php
$this->addMediaBucket('docs')
    ->singleFile()                    // keep only the latest file
    ->acceptsMimeTypes(['application/pdf'])
    ->useDisk('s3')                   // originals disk
    ->storingVariantsOnDisk('cdn')    // variants disk
    ->public()                        // or ->private()
    ->useFallbackUrl('/img/doc.png')  // returned by url() / getFirstMediaUrl() when empty
    ->responsiveWidths([480, 960, 1440])
    ->registerVariants(fn (VariantRegistrar $v) => $v->add('preview')->width(640));
```

- singleFile() — drží len posledný súbor; pridanie nahradí predošlý (spustí sa preň MediaHasBeenDeleted).
- acceptsMimeTypes(\[...\]) — obmedzí skupinu na mime allowlist. Skupina bez neho prijme akýkoľvek typ vrátane HTML a SVG — každej skupine s uploadmi od používateľov preto allowlist dajte.
- useDisk() / storingVariantsOnDisk() — pripne originály a varianty na konkrétne disky.
- public() / private() — viditeľnosť; súkromné médiá sa servírujú len cez podpísané URL.
- useFallbackUrl() — URL, ktoré vráti MediaLibrary::for($model)->url() (alebo getFirstMediaUrl()), keď je skupina prázdna.
- responsiveWidths() / registerVariants() — deklarujú responzívne šírky a varianty obrázkov.
- maxFileSize() / minDimensions() / maxDimensions() — obmedzenia, z ktorých vychádza aj MediaLibrary::rulesFor().

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/media-library-for-laravel.md)
