---
title: "Vlastné druhy — Contacts for Laravel | Roundly"
description: "Zaregistrujte v konfigurácii druhy ako whatsapp s vlastným popisom, ikonou a pravidlami — každý má vlastný primárny kontakt aj scope."
url: https://roundly-consulting.com/sk/open-source/navody/contacts-for-laravel/vlastne-druhy
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)

# Vlastné druhy

Každý uložený druh mimo šiestich vstavaných — napríklad druh whatsapp registrovaný v konfigurácii — má typ Custom a popis, ikonu aj pravidlá berie z contacts.types.<druh>:

```php
// config/contacts.php
'types' => [
    'whatsapp' => [
        'label' => 'WhatsApp',
        'icon' => 'chat-bubble',
        'rules' => ['required', 'string', 'regex:/^\+?[1-9]\d{6,14}$/'],
    ],
],
```

```php
use RoundlyConsulting\Contacts\DataTransferObjects\ContactData;
use RoundlyConsulting\Contacts\Models\Contact;

$contact = $user->addContact(ContactData::fromArray([
    'type' => 'whatsapp',
    'value' => '+421900123456',
    'name' => 'Support',
]));

$contact->kind;         // 'whatsapp'  — the raw kind, as stored
$contact->type;         // ContactType::Custom
$contact->kindLabel();  // 'WhatsApp'
$contact->kindIcon();   // 'chat-bubble'

Contact::query()->ofType('whatsapp')->get();   // this kind only
```

Surový druh sa uchováva popri type, takže registrovaný popis, ikona aj validačné pravidlá sa vyhodnotia správne — regex vyššie odmietne zlú hodnotu už pri addContact(). Register je indexovaný hodnotou $contact->kind; $contact->type zostáva ContactType kvôli typovaniu a pre každý druh mimo šiestich je Custom.

## Druh verzus popis

kindLabel() je zobrazovaný názov druhu, odlišný od $contact->label — vášho voľného popisu jedného konkrétneho kontaktu (napríklad Work). Neregistrovaný druh sa zachová, no použije popis (Other) a ikonu (identification) druhu Custom.

## Nezávislé druhy

Registrované druhy sú nezávislé: každý má vlastný primárny kontakt aj vlastné poradie a ofType('whatsapp') vyberie len tento druh — nový primárny whatsapp nikdy nezosadí primárny telegram.

## Pridávanie a validácia vlastných druhov

Surový druh zachová každý vstupný bod: type('whatsapp') vo fluentnom builderi, ContactData::fromArray() s druhom v type, argument kind konštruktora aj sync('whatsapp', $items) (pozrite Synchronizácia kontaktov). Druh odovzdajte aj pravidlu ValidContactValue, inak sa registrované pravidlá nikdy nespustia:

```php
use RoundlyConsulting\Contacts\DataTransferObjects\ContactData;
use RoundlyConsulting\Contacts\Enums\ContactType;
use RoundlyConsulting\Contacts\Facades\Contacts;
use RoundlyConsulting\Contacts\Rules\ValidContactValue;
use RoundlyConsulting\Contacts\Support\ContactRules;

// The fluent builder keeps the raw kind
Contacts::for($user)->type('whatsapp')->value('+421900123456')->add();

// The constructor form — pin the raw kind next to the Custom type
$user->addContact(new ContactData(ContactType::Custom, '+421900123456', kind: 'whatsapp'));

// Validate a form field against the registered kind's rules
$request->validate([
    'whatsapp' => ['required', new ValidContactValue(ContactType::Custom, 'whatsapp')],
]);

// ...or take the ready rule array for the kind
$request->validate([
    'whatsapp' => ContactRules::forValue(ContactType::Custom, 'whatsapp'),
]);
```

## Prepis vstavaných druhov

Ten istý register prepisuje aj šesť vstavaných druhov — nastavte popis, ikonu alebo pravidlá pre email, phone, address, url, social alebo custom:

```php
// config/contacts.php — override a built-in kind's label, icon or rules
'types' => [
    'url' => ['label' => 'Homepage', 'icon' => 'link'],
],
```

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