---
title: "Detekcia konfliktov — Appointments for Laravel | Roundly"
description: "Blokujte dvojité rezervácie pre jedno volanie alebo globálne, preskúmajte kolidujúce termíny a overte dostupnosť cez Appointments::isAvailable()."
url: https://roundly-consulting.com/sk/open-source/navody/appointments-for-laravel/detekcia-konfliktov
language: sk
---

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

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

# Detekcia konfliktov

Ochranu pred dvojitou rezerváciou zapnete pre jedno volanie cez preventConflicts(). Ak má účastník prekrývajúcu sa rezerváciu, ešte pred akýmkoľvek zápisom sa vyhodí SchedulingConflictException, ktorá nesie kolidujúce termíny:

```php
use RoundlyConsulting\Appointments\Exceptions\SchedulingConflictException;
use RoundlyConsulting\Appointments\Facades\Appointments;

try {
    Appointments::schedule('Follow-up')
        ->startingAt('2026-07-01 09:30')
        ->lasting(60)
        ->withParticipant($doctor)
        ->preventConflicts()
        ->create();
} catch (SchedulingConflictException $e) {
    $e->conflicts;      // Collection<int, Appointment> — the bookings this slot overlaps
    $e->getMessage();   // The requested time conflicts with 1 existing appointment(s).
}
```

Prípadne strážte každé vytvorenie, presun aj pridanie účastníka v celej aplikácii:

```php
// config/appointments.php — guard every create, reschedule and participant add
'prevent_conflicts' => true,
```

## Čo sa považuje za konflikt

- Existujúci termín koliduje, ak začína pred novým koncom a končí po novom začiatku. Nadväzujúce intervaly — jeden končí presne vtedy, keď ďalší začína — nekolidujú.
- Existujúci termín bez ends\_at sa považuje za otvorený, bez konca.
- Zrušené a odmietnuté termíny sa ignorujú; čakajúce, potvrdené, dokončené aj termíny s neprítomnosťou sa rátajú.
- Pri vytvorení sa kontroluje každý účastník odovzdaný builderu alebo DTO. Pri presune sa kontrolujú aktuálni účastníci termínu a termín nikdy nekoliduje sám so sebou. Pri participants()->add() sa pridávaný model porovná s časom termínu.
- Príznak pre jedno volanie ochranu len zapína — pri prevent\_conflicts nastavenom na true je strážené každé vytvorenie, presun aj pridanie účastníka.
- V opakovanej sérii sa kontroluje každý výskyt a jediný konflikt vráti späť celú sériu.

## Bezpečné pri súbežnosti

Kontrola platí, aj keď dve požiadavky rezervujú tú istú osobu naraz. Prebieha v transakcii, ktorá zapisuje, po uzamknutí riadka každého účastníka — a pri presune či pridaní účastníka aj riadka termínu — takže dve súbežné rezervácie jednej osoby ňou nemôžu prejsť obe. Zámky sa berú vždy v rovnakom poradí, takže rezervácie so spoločnými účastníkmi sa navzájom nezablokujú. SQLite zámky riadkov nemá; zápisy namiesto toho radí za sebou.

## Overenie dostupnosti

Opýtajte sa priamo fasády — napríklad na zašednutie obsadených slotov ešte predtým, ako si ich niekto vyberie. Obe metódy len čítajú a platia pre ne rovnaké pravidlá. $start a $end môžu byť inštancie Carbon v ľubovoľnom pásme; porovnávajú sa ako okamihy, ktoré predstavujú:

```php
use RoundlyConsulting\Appointments\Facades\Appointments;

Appointments::isAvailable($doctor, $start, $end);                       // bool
Appointments::conflicts($doctor, $start, $end);                         // Collection<int, Appointment>
Appointments::conflicts($doctor, $start, $end, ignore: $appointment);   // leave one booking out
```

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