---
title: "Konfigurácia — Contacts for Laravel | Roundly"
description: "Každý konfiguračný kľúč a jeho predvolená hodnota — model, tabuľka, typ kľúča, auto-primárny, predvoľba, overovanie, vlastné druhy a vzťahy."
url: https://roundly-consulting.com/sk/open-source/navody/contacts-for-laravel/konfiguracia
language: sk
---

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

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

# Konfigurácia

Publikovaný config/contacts.php:

```php
return [
    'model' => RoundlyConsulting\Contacts\Models\Contact::class,
    'table' => 'contacts',
    'key_type' => env('CONTACTS_KEY_TYPE', 'bigint'),

    'auto_primary' => true,
    'require_owner_for_primary' => false,
    'default_country_code' => env('CONTACTS_DEFAULT_COUNTRY_CODE'),

    'verification' => [
        'ttl' => env('CONTACTS_VERIFICATION_TTL', 60),
        'style' => env('CONTACTS_VERIFICATION_STYLE', 'code'),
        'code_length' => env('CONTACTS_VERIFICATION_CODE_LENGTH', 6),
        'token_length' => env('CONTACTS_VERIFICATION_TOKEN_LENGTH', 32),
        'max_attempts' => env('CONTACTS_VERIFICATION_MAX_ATTEMPTS', 5),
    ],

    'types' => [
        // 'whatsapp' => ['label' => 'WhatsApp', 'icon' => 'chat', 'rules' => ['required', 'string']],
    ],

    'relationship_kinds' => [
        // 'works_at' => 'Works at', 'spouse_of' => 'Spouse of',
    ],
];
```

## Všetky kľúče

| Kľúč | Predvolené | Env | Účel |
| --- | --- | --- | --- |
| `model` | Contact::class | — | Eloquent model pre kontakty. Musí byť Contact z balíka alebo ho rozširovať — čokoľvek iné vyhodí InvalidConfigurationException. |
| `table` | contacts | — | Tabuľka kontaktov; číta ju migrácia aj Contact::getTable(). Prázdna hodnota = nenastavená (contacts); akákoľvek iná hodnota musí byť reťazec. |
| `key_type` | bigint | `CONTACTS_KEY_TYPE` | Typ kľúča owner\_id: bigint, uuid alebo ulid. Iná hodnota vyhodí InvalidConfigurationException. Zafixuje sa pri spustení migrácie. |
| `auto_primary` | true | — | Prvý kontakt daného druhu pridaný vlastníkovi sa stane primárnym; keď primárny druh opustí (zmazanie, synchronizácia, presun), nahradí ho ďalší podľa poradia. |
| `require_owner_for_primary` | false | — | Primárne môžu byť len kontakty s vlastníkom; inak sa vyhodí PrimaryContactConflict. |
| `default_country_code` | null | `CONTACTS_DEFAULT_COUNTRY_CODE` | Orientačná predvoľba pre telefónne čísla zadané vo vnútroštátnom formáte — nahradí úvodnú 0 (pozrite Druhy kontaktov). Zapisuje sa 421, +421 alebo 1-264 (1 – 4 číslice, bez úvodnej nuly); nenastavená hodnota (null alebo prázdna) znamená žiadnu — vnútroštátne číslo s úvodnou 0 sa potom odmietne ako neplatný telefón. |
| `verification.ttl` | 60 | `CONTACTS_VERIFICATION_TTL` | Počet minút platnosti overovacieho tokenu, 1 – 525600 (rok). |
| `verification.style` | code | `CONTACTS_VERIFICATION_STYLE` | code pre číselný jednorazový kód, token pre náhodný hex reťazec. Presne a malými písmenami: čokoľvek iné vyhodí výnimku, takže preklep nikdy nezmení token na 6-miestny kód. |
| `verification.code_length` | 6 | `CONTACTS_VERIFICATION_CODE_LENGTH` | Počet číslic pri štýle code, 1 – 72. |
| `verification.token_length` | 32 | `CONTACTS_VERIFICATION_TOKEN_LENGTH` | Počet náhodných bajtov pri štýle token, 1 – 36 — v hex kódovaní, takže reťazec je dvakrát dlhší; bcrypt číta len prvých 72 znakov. |
| `verification.max_attempts` | 5 | `CONTACTS_VERIFICATION_MAX_ATTEMPTS` | Počet nesprávnych pokusov, ktoré token prežije, 1 – 1000. Pokus, ktorý minie posledný, token zneplatní. |
| `types` | \[\] | — | Registrácia vlastných druhov a prepis popisu, ikony či pravidiel vstavaných druhov. Mapa druh => definícia; label a icon sú reťazce (prázdna hodnota = nenastavená, teda vlastná hodnota druhu) a rules zoznam reťazcov s pravidlami. |
| `relationship_kinds` | \[\] | — | Povolené druhy pre relateTo() / relationsOfKind(). Prázdne alebo nenastavené (null či prázdna hodnota) = ľubovoľné; zoznam alebo mapa druh => popis ich obmedzí. Akákoľvek iná hodnota, ktorá nie je pole, vyhodí výnimku. |

Oba prepínače akceptujú reťazce v štýle env ('true'/'false', '1'/'0', 'on'/'off', 'yes'/'no') a číselné kľúče akceptujú celé čísla v reťazci ('30'). Nenastavený kľúč (chýbajúci, null alebo prázdny: '' či len medzery, čo dá samotný riadok CONTACTS\_VERIFICATION\_TTL=) má predvolenú hodnotu. Čokoľvek iné — preklep v prepínači či štýle, TTL, dĺžka alebo počet pokusov, ktoré nie sú celým číslom ('five', '5.5') alebo sú mimo rozsahu, nereťazcová tabuľka, predvoľba, ktorá ňou nie je, chybná položka types alebo relationship\_kinds — vyhodí InvalidConfigurationException z balíka package-toolkit s názvom kľúča, namiesto toho, aby sa použila predvolená hodnota alebo sa hodnota potichu orezala.

## Prostredie (env)

Kľúče citlivé na nasadenie sa čítajú z env, takže súbor publikujete len zriedka:

```bash
CONTACTS_KEY_TYPE=bigint
CONTACTS_DEFAULT_COUNTRY_CODE=421
CONTACTS_VERIFICATION_TTL=60
CONTACTS_VERIFICATION_STYLE=code
CONTACTS_VERIFICATION_CODE_LENGTH=6
CONTACTS_VERIFICATION_TOKEN_LENGTH=32
CONTACTS_VERIFICATION_MAX_ATTEMPTS=5
```

## Vlastný model kontaktu

Model Contact zámerne nie je final. Rozšírte ho a nasmerujte naň contacts.model — trait, akcie, vCard exportér, smerovanie notifikácií, factory aj testové matchery si ho odtiaľ načítajú:

```php
namespace App\Models;

use RoundlyConsulting\Contacts\Models\Contact as BaseContact;

class Contact extends BaseContact
{
    // your own relations, accessors and scopes
}

// config/contacts.php
'model' => App\Models\Contact::class,
```

Nastavená trieda musí byť Contact z balíka alebo jeho podtrieda; čokoľvek iné — cudzí model, neexistujúca trieda — vyhodí InvalidConfigurationException s názvom contacts.model a nikdy sa potichu nenahradí. Tabuľku meňte cez contacts.table, nie cez vlastnosť $table — metóda getTable() modelu rešpektuje hodnotu z konfigurácie.

## Kontrola konfigurácie

Balík hlási svoju konfiguráciu do príkazu about v Laraveli:

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

| Riadok | Zobrazuje |
| --- | --- |
| Model | Krátky názov triedy použitého modelu kontaktu. |
| Table | Nastavený názov tabuľky. |
| Auto primary | ON / OFF. |
| Require owner for primary | ON / OFF. |
| Default country code | SET / NONE — nikdy samotná predvoľba. |
| Verification | Štýl, TTL a limit pokusov, napr. code, 60m, 5 attempts. |
| Custom types | Počet, napr. 2 registered — nikdy názvy druhov. |
| Relationship kinds | FREE-FORM alebo počet, napr. 3 allowed. |

Registrované druhy a druhy vzťahov sú slovníkom vašej domény, preto sa hlásia len ako počty — nikdy menom. Predvoľba sa hlási len prítomnosťou, nikdy hodnotou. Chybná hodnota tabuľky, predvoľby, nastavenia overovania, types alebo relationship\_kinds sa zobrazí ako INVALID a príkaz nezlyhá.

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