NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Attributes for Laravel

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:

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.
// 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:

$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

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

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.