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 kryptomienOdoslaní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.