---
title: "Validácia a HTTP vstup — Opening Hours for Laravel | Roundly"
description: "Validujte vstup otváracích hodín pravidlom ValidOpeningHours, dostaňte každý problém pod jeho vnoreným kľúčom a validujte aj v kóde."
url: https://roundly-consulting.com/sk/open-source/navody/opening-hours-for-laravel/validacia
language: sk
---

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

[Opening Hours for Laravel](https://roundly-consulting.com/sk/open-source/navody/opening-hours-for-laravel.md)

# Validácia a HTTP vstup

Vstup z formulára alebo API zvalidujte pravidlom ValidOpeningHours a zvalidované pole odovzdajte priamo do OpeningHours::sync():

```php
use RoundlyConsulting\OpeningHours\Facades\OpeningHours;
use RoundlyConsulting\OpeningHours\Rules\ValidOpeningHours;
use RoundlyConsulting\OpeningHours\Rules\ValidTimeRange;

public function rules(): array
{
    return [
        'opening_hours' => ['required', 'array', new ValidOpeningHours(requireTimezone: true)],
        'range' => [new ValidTimeRange],
    ];
}

OpeningHours::sync(
    $clinic,
    $request->validated('opening_hours'),
    expectedRevision: $request->filled('revision') ? $request->integer('revision') : null,
);
```

Každý problém sa hlási pod svojím vnoreným kľúčom (opening\_hours.schedules.0.week.monday.1) s preloženou správou: neplatné časy, prázdne rozsahy, prekryvy (aj cez polnoc a z nedele do pondelka), dva základné rozvrhy, nejednoznačné sezónne okná či výnimky, neznáme dni, neplatné časové pásma a prekročené limity. new ValidOpeningHours(mergeOverlapping: true) prekryvy zlúči namiesto odmietnutia — zlúčené rozsahy už nezodpovedajú pozíciám vo vstupe, preto porušenie na nich uvedie deň (opening\_hours.week.monday) alebo rozsahy výnimky; requireTimezone: true urobí časové pásmo povinným. ValidTimeRange validuje jeden rozsah vrátane limitov limits.label\_length a limits.meta\_bytes, ktoré uplatní aj uloženie.

## Validácia v kóde

Fasáda validuje bez zápisu; CalendarData::fromArray() vyhodí InvalidOpeningHoursException so všetkými porušeniami:

```php
use RoundlyConsulting\OpeningHours\DataTransferObjects\CalendarData;
use RoundlyConsulting\OpeningHours\Exceptions\InvalidOpeningHoursException;
use RoundlyConsulting\OpeningHours\Facades\OpeningHours;

$violations = OpeningHours::validate($payload);   // ViolationList, nothing is written
$violations->isEmpty();
$violations->first()?->message();
$violations->toMessageBag('opening_hours');

try {
    $data = CalendarData::fromArray($payload);
} catch (InvalidOpeningHoursException $e) {
    return back()->withErrors($e->violations()->toMessageBag('opening_hours'));
}
```

## Kódy porušení

Každé porušenie nesie ViolationCode; jeho správa pochádza z opening-hours::validation.<code> v angličtine a slovenčine: invalid\_structure, invalid\_time, empty\_range, start\_at\_24, overlap, invalid\_date, invalid\_month\_day, window\_inverted, recurrence\_mismatch, yearly\_window\_unbounded, duplicate\_base\_schedule, ambiguous\_schedule\_window, duplicate\_exception, ambiguous\_exception, invalid\_timezone, timezone\_required, invalid\_calendar\_key, unknown\_weekday, invalid\_priority, invalid\_capacity, limit\_exceeded, label\_too\_long, meta\_too\_large, unknown\_id, duplicate\_id a unsupported\_week\_array\_feature.

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