---
title: "Podmienky — Workflows for Laravel | Roundly"
description: "Deklaratívne JSON podmienky — all, any, not a klauzuly polí, operátory podľa typu poľa, správanie null, čísel a dátumov a kontroly pri publikovaní."
url: https://roundly-consulting.com/sk/open-source/navody/workflows-for-laravel/podmienky
language: sk
---

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

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

# Podmienky

Podmienky sú deklaratívny JSON. Neexistuje žiadny výrazový jazyk, žiadny kód a žiadne regulárne výrazy od používateľov: pevný interpret prechádza spracovaný strom a číta len registrované polia.

```jsonc
{ "all": [                                            // all = AND, any = OR, not = negation; nest freely
    { "field": "subject.amount", "op": "gt", "value": "50000" },
    { "any": [
        { "field": "subject.department", "op": "in", "value": ["legal", "finance"] },
        { "field": "input.urgent", "op": "equals", "value": true } ] },
    { "field": "subject.due_on", "op": "before", "value": { "relative": "P7D" } },   // now + 7 days
    { "field": "owner.plan", "op": "equals", "value": { "ref": "trigger.plan" } }
] }
```

- Ľavý operand: field — cesta k hodnote (subject.\*, owner.\*, input.\*, trigger.\*, steps.<id>.output.\*).
- Pravý operand: literál, {"ref": path}, {"relative": duration} (len dátumy, relatívne k teraz) alebo \[low, high\] pre between.
- Operátory: equals, in, gt, lt, between (vrátane hraníc), empty, contains, before, after.

To isté v zostavovači grafu:

```php
use RoundlyConsulting\Workflows\Graph\Build\{Ref, When};

When::all(
    When::field('subject.amount')->gt('50000'),
    When::any(
        When::field('subject.department')->in(['legal', 'finance']),
        When::field('input.urgent')->equals(true),
    ),
    When::field('subject.title')->contains('laptop', insensitive: true),
    When::not(When::field('subject.note')->isEmpty()),
    When::field('owner.plan')->equals(Ref::trigger('plan')),
);
```

## Operátory podľa typu poľa

| Typ poľa | Povolené operátory |
| --- | --- |
| string, text | equals, in, empty, contains (rozlišuje veľkosť písmen; pridajte "case": "insensitive") |
| integer, decimal | equals, in, gt, lt, between, empty |
| boolean | equals, empty |
| date, datetime | equals, before, after, between, empty |
| enum | equals, in, empty |
| party | equals (podľa kľúča alebo {"kind": "triggered\_by"}), in, empty |
| list | contains, empty |

## Správanie

- null pri každom operátore okrem empty vyhodnotí ako nepravdu. empty platí pre null, "" aj \[\].
- Desatinné čísla sa porovnávajú ako presné reťazce (bez float): "50000", 50000 a "50000.00" sú rovnaké; exponenty sa odmietnu.
- Pole date sa porovnáva podľa kalendárneho dňa v časovom pásme verzie; before/after sú ostré. Obyčajný literál YYYY-MM-DD je dátum v tomto pásme. Dátum uložený o polnoci — stĺpec DATE, cast date v Laraveli, vstup spúšťača typu date — si zachová kalendárny deň, v ktorom bol uložený, bez ohľadu na časové pásmo verzie a aplikácie. Pole date s časom dňa je deň, na ktorý tento okamih pripadne v časovom pásme verzie; datetime sa porovnáva ako okamih.
- Pole party sa rovná modelu, jeho kľúču alebo používateľovi, ktorý beh spustil.
- Neregistrovaný atribút sa nikdy neprečíta, ani keď na modeli existuje.

## Validácia pri publikovaní

| Problém | Kód |
| --- | --- |
| Neznáme pole | `unknown_field` |
| Operátor nie je povolený pre typ poľa | `operator_not_allowed` |
| Literál nesprávneho typu | `invalid_value` |
| Nedeklarovaný input.\* | `unknown_input` |
| steps.<id>, ktorý nie je predchodca | `invalid_reference` |
| Hlbšia než conditions.max\_depth (6) alebo viac než conditions.max\_clauses (100) klauzúl | `condition_too_complex` |

## Kde sa podmienky používajú

condition.when, branch.cases\[\].when, wait.condition, wait.where, for\_each.where pri plánoch a condition spúšťača — filter vyhodnotený ešte pred vznikom inštancie; nepravda → žiadna inštancia, v EmitResult uvedená ako preskočená.

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