---
title: "Konfigurácia — Attributes for Laravel | Roundly"
description: "Každý konfiguračný kľúč s predvolenou hodnotou — model, tabuľka, typ kľúča vlastníka, prísny režim, prečistenie, zmazanie vlastníka, história a definície."
url: https://roundly-consulting.com/sk/open-source/navody/attributes-for-laravel/konfiguracia
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)

# Konfigurácia

Publikovaný config/attributes.php v plnom znení, s príkladmi definícií v komentári:

```php
return [
    'model' => RoundlyConsulting\Attributes\Models\Attribute::class,
    'table' => 'attributes',
    'key_type' => env('ATTRIBUTES_KEY_TYPE', 'bigint'),
    'strict' => env('ATTRIBUTES_STRICT', false),
    'prune_after_days' => env('ATTRIBUTES_PRUNE_AFTER_DAYS', 30),
    'delete_with_owner' => env('ATTRIBUTES_DELETE_WITH_OWNER', true),
    'history' => [
        'enabled' => env('ATTRIBUTES_HISTORY', false),
        'table' => 'attribute_revisions',
    ],
    'definitions' => [
        // 'rating'  => ['type' => 'integer', 'rules' => ['min:1', 'max:5'], 'required' => true],
        // 'sku'     => ['type' => 'string', 'unique' => 'global'],
        // 'token'   => ['type' => 'string', 'encrypted' => true],
        // 'retries' => ['type' => 'integer', 'default' => 3],
    ],
];
```

## Všetky kľúče

| Kľúč | Predvolené | Env | Účel |
| --- | --- | --- | --- |
| `model` | Attribute::class | — | Eloquent model, ktorý ukladá atribúty. Musí to byť model Attribute z balíka alebo jeho podtrieda; čokoľvek iné vyhodí výnimku. |
| `table` | attributes | — | Tabuľka, ktorú používa migrácia aj model. Prázdna hodnota sa považuje za nenastavenú a použije sa predvolená; hodnota, ktorá nie je reťazec, vyhodí výnimku. |
| `key_type` | bigint | ATTRIBUTES\_KEY\_TYPE | Typ kľúča vlastníka v morph stĺpcoch: bigint, uuid alebo ulid (bez ohľadu na veľkosť písmen; iná hodnota pri spustení migrácií vyhodí InvalidConfigurationException). Číta sa pri spustení migrácií. |
| `strict` | false | ATTRIBUTES\_STRICT | Odmietne zápis hodnoty aj metadát pre názov bez globálnej definície aj bez definície v schéme modelu (UnknownAttributeException). |
| `prune_after_days` | 30 | ATTRIBUTES\_PRUNE\_AFTER\_DAYS | Predvolený vek v dňoch pre attributes:prune. Celé číslo, 0 alebo viac (0 vymaže všetky soft-deleted atribúty); prázdna hodnota (ATTRIBUTES\_PRUNE\_AFTER\_DAYS=) sa považuje za nenastavenú a znamená 30; čokoľvek iné vyhodí výnimku. |
| `delete_with_owner` | true | ATTRIBUTES\_DELETE\_WITH\_OWNER | Trvalé zmazanie vlastníka — modelu bez SoftDeletes alebo cez forceDelete() — odstráni aj jeho riadky atribútov a uvoľní jeho jedinečné hodnoty; soft delete ich ponechá. Revízie zostávajú v oboch prípadoch. Pozrite Odstraňovanie a synchronizácia. |
| `history.enabled` | false | ATTRIBUTES\_HISTORY | Zaznamenáva revíziu starý→nový pri každom pripojení, zmene hodnoty či metadát a odpojení. |
| `history.table` | attribute\_revisions | — | Tabuľka auditnej stopy. Prázdna hodnota sa považuje za nenastavenú a použije sa predvolená; hodnota, ktorá nie je reťazec, vyhodí výnimku. |
| `definitions` | \[\] | — | Počiatočné definície registra podľa názvu atribútu; každá položka je pole. Načítajú sa raz pri štarte. |

## Kľúče definície

Každá položka v definitions má ako kľúč názov atribútu a prijíma tieto kľúče:

| Kľúč definície | Typ | Účel |
| --- | --- | --- |
| `type` | string | string, integer, float, boolean, array alebo datetime (alebo prípad enumu AttributeType) — hodnota sa podľa neho overí aj uloží („5“ sa pri integer uloží ako 5). Nenastavený alebo prázdny typ znamená string; čokoľvek iné vyhodí výnimku. |
| `rules` | array | Ďalšie validačné pravidlá Laravelu, uplatnené po pravidle samotného typu. Musí to byť pole (\['min:1', 'max:5'\]); reťazec s pravidlami oddelenými zvislou čiarou vyhodí výnimku. |
| `required` | bool | Vynucuje ho $model->validateAttributes(). Číta sa rovnako ako logické hodnoty v env; čokoľvek iné vyhodí výnimku. |
| `default` | mixed | Vracajú ho čítania, keď atribút nie je pripojený. Nikdy sa neukladá. |
| `unique` | string / bool | owner alebo true (v rámci typu vlastníka), global (naprieč všetkými vlastníkmi), none alebo false (nenastavená alebo prázdna hodnota tiež znamená none); čokoľvek iné vyhodí výnimku namiesto vypnutia jedinečnosti. Stojí na unikátnom indexe v databáze — aj pre šifrované hodnoty. |
| `encrypted` | bool | Uloží hodnotu ako šifrový text cez Crypt. Číta sa rovnako ako logické hodnoty v env; čokoľvek iné vyhodí výnimku. |

```php
// config/attributes.php
'definitions' => [
    'rating'  => ['type' => 'integer', 'rules' => ['min:1', 'max:5'], 'required' => true],
    'sku'     => ['type' => 'string', 'unique' => 'global'],
    'token'   => ['type' => 'string', 'encrypted' => true],
    'retries' => ['type' => 'integer', 'default' => 3],
],
```

Definície z konfigurácie sa do registra načítajú raz, pri štarte aplikácie; neplatná položka pri štarte vyhodí InvalidConfigurationException s cestou attributes.definitions.<name>.<key>. Definície môžete registrovať aj v kóde alebo ich deklarovať pre konkrétny model — pozrite Definície a validácia a Schémy modelov.

## Prostredie (env)

Kľúče, ktoré sa líšia podľa nasadenia, sa čítajú z env:

```bash
# bigint | uuid | ulid — set before you run the migrations
ATTRIBUTES_KEY_TYPE=bigint

# reject attribute names that are not registered
ATTRIBUTES_STRICT=false

# default age (days) for attributes:prune
ATTRIBUTES_PRUNE_AFTER_DAYS=30

# remove an owner's attributes when the owner is deleted for good
ATTRIBUTES_DELETE_WITH_OWNER=true

# record an old -> new revision on every change
ATTRIBUTES_HISTORY=false
```

Logické hodnoty v env prijímajú true/false, 1/0, on/off aj yes/no. Každé nastavenie sa číta prísne: nenastavený kľúč — chýbajúci, null alebo prázdny (KEY= v .env) — použije predvolenú hodnotu a akákoľvek iná neplatná hodnota vyhodí InvalidConfigurationException s názvom kľúča — nikdy sa potichu nenahradí.

Výsledné hodnoty kedykoľvek overíte príkazom about v Laraveli. Definície sa vypisujú len ako počet, nikdy podľa názvu — názov atribútu často pomenúva práve to tajomstvo, ktoré chráni príznak encrypted:

```bash
php artisan about --only=attributes
```

## 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)
