---
title: "Fluentný builder — Attributes for Laravel | Roundly"
description: "Pripravte niekoľko atribútov s metadátami, upravte pripravenú množinu a uložte ju popri existujúcich alebo nimi nahraďte všetky."
url: https://roundly-consulting.com/sk/open-source/navody/attributes-for-laravel/fluentny-builder
language: sk
---

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

[Attributes for Laravel](https://roundly-consulting.com/sk/open-source/navody/attributes-for-laravel.md)

# Fluentný builder

Attributes::for($model)->stage() vracia fluentný writer — $model->attributes() je ten istý writer ako skratka na modeli. Pripravte typované hodnoty aj metadáta a uložte ich jedným čitateľným príkazom:

```php
use RoundlyConsulting\Attributes\Facades\Attributes;

Attributes::for($product)->stage()
    ->set('color', 'white')->meta('color', ['hex' => '#fff'])
    ->set('rating', 5)
    ->set('on_sale', true)
    ->save();

// Model shorthand: $product->attributes() is Attributes::for($product)->stage()
$product->attributes()->set('stock', 8)->save();
```

## Uložiť alebo synchronizovať

- save() — pripojí pripravené atribúty cez setMany() handlu a ostatné, ktoré už model má, ponechá. Ak nie je nič pripravené, neurobí nič.
- sync() — ide cez sync() handlu: pripojí pripravené atribúty a odstráni všetky, ktoré pripravené neboli. S forceDelete: true sa odstránené riadky vymažú natrvalo. Ak nie je nič pripravené, odstráni všetky atribúty.

```php
// save(): add or update the staged attributes, keep the rest
$product->attributes()
    ->set('stock', 8)
    ->save();

// sync(): the staged set becomes the complete set
$product->attributes()
    ->set('color', 'black')
    ->set('rating', 4)
    ->sync();                      // every other attribute is soft-deleted

$product->attributes()
    ->set('color', 'black')
    ->sync(forceDelete: true);     // ...or hard-deleted
```

## Úprava pripravenej množiny

forget() a except() pripravené názvy vyradia; only() ponechá len uvedené názvy. Metadáta vyradeného názvu sa vyradia spolu s ním a metadáta pripravené pre názov bez pripravenej hodnoty sa neuložia:

```php
$writer = $product->attributes()
    ->set('color', 'white')->meta('color', ['hex' => '#fff'])
    ->set('size', 'large')
    ->set('internal_note', 'check supplier');

$writer->forget('internal_note');   // drop one or more staged names
$writer->except('size');            // alias of forget()
$writer->only('color', 'size');     // keep just these names

$writer->save();                    // persists color (with its meta)
```

meta() prijíma pole aj Collection. Každý pripravený atribút prejde rovnakou kontrolou prísneho režimu, validáciou, kontrolou jedinečnosti, históriou aj udalosťami ako pri set() a všetky pripravené hodnoty sa overia pred prvým zápisom — jediná neplatná hodnota nechá vlastníka bez zmeny. save() aj sync() vracajú model.

## 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/attributes-for-laravel.md)
