Vlastníci a trait HasOptions
Hodnoty nastavení môže vlastniť akýkoľvek Eloquent model. Odovzdajte ho ako argument vlastníka alebo začnite volaním Options::for():
use RoundlyConsulting\Options\Facades\Options;
Options::set(LocaleOption::class, 'sk', $team);
Options::get(LocaleOption::class, $team); // 'sk'
Options::get(LocaleOption::class); // the global value — untouched
Options::for($tenant)->set(ThemeOption::class, 'dark');
Options::for($tenant)->get(ThemeOption::class); // 'dark'Trait HasOptions
Pridajte modelu HasOptions a získate nastavenia naviazané priamo naň:
use RoundlyConsulting\Options\Traits\HasOptions;
final class User extends Authenticatable
{
use HasOptions;
}
$user->option(ThemeOption::class)->value(); // this user’s value, or the default
$user->option(ThemeOption::class)->set('dark');
$user->option('theme')->value(); // a registered key works toooption() vráti inštanciu nastavenia obmedzenú na daný model, takže value(), set(), has(), forget() aj remember() pracujú s vlastným riadkom modelu. Prijme class-string aj registrovaný kľúč. Trait je len skratka nad tým istým managerom — $user->option(ThemeOption::class)->set('dark') je presne Options::set(ThemeOption::class, 'dark', $user), vrátane faku.
Ako zostávajú rozsahy oddelené
Riadky sa porovnávajú podľa owner_type — morph triedy modelu, takže platia aj aliasy z morph mapy — a owner_id. Záznamy v cache majú rovnaký odtlačok, takže hodnota jedného používateľa sa nikdy nedostane do rozsahu iného používateľa ani do globálneho.
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.