---
title: "Import a export — Options for Laravel | Roundly"
description: "Prenášajte nastavenia medzi prostrediami alebo seedujte predvolené hodnoty cez Options::export(), exportJson() a import() či zodpovedajúce príkazy."
url: https://roundly-consulting.com/sk/open-source/navody/options-for-laravel/import-a-export
language: sk
---

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

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

# Import a export

Nastavenia prenesiete medzi prostrediami alebo dodáte predvolené hodnoty cez fasádu (prípadne vložený OptionsManager). Príkazy options:export a options:import volajú ten istý manager a prácu pod ním robia ExportOptionsAction a ImportOptionsAction (pozri DI a akcie):

```php
use RoundlyConsulting\Options\Facades\Options;

Options::export();                   // list<OptionPayload>: every stored option, global and owned
Options::export($tenant);            // one owner's options
Options::export(globalOnly: true);   // only the global ones
Options::for($tenant)->export();     // one scope; Options::for(null)->export() = global only

$json = Options::exportJson($tenant); // the same, as a JSON array of rows

$count = Options::import($json);                                   // JSON string — upsert, returns the count
$count = Options::import([['key' => 'theme', 'value' => 'dark']]); // decoded rows (owner_type / owner_id optional)
$count = Options::import($payloads);                               // list<OptionPayload>; rows and payloads may be mixed
```

## Formát dát

exportJson() aj options:export vytvoria JSON pole riadkov OptionPayload:

```json
[
  { "key": "theme", "value": "dark", "owner_type": null, "owner_id": null },
  { "key": "theme", "value": "light", "owner_type": "App\\Models\\User", "owner_id": 5 }
]
```

## Správanie

- Hodnoty putujú presne tak, ako sú uložené — serializované a pri šifrovaných nastaveniach stále zašifrované, takže cieľová aplikácia ich prečíta len s rovnakým APP\_KEY.
- Import vkladá alebo aktualizuje podľa key, owner\_type a owner\_id, takže opakovaný import toho istého súboru je idempotentný. Soft-zmazaný riadok zabudnutého nastavenia sa obnoví, nevznikne duplikát.
- Import zapisuje riadky priamo: bez validácie cez rules(), castov, eventov aj observerov.
- Import funguje systémom všetko alebo nič: každá hodnota sa overí ešte pred zápisom prvého riadku a riadky sa zapíšu v jednej transakcii, takže zlyhanie uprostred nenechá importovaný ani jeden riadok.
- import() vráti počet riadkov a každú importovanú hodnotu uloží do cache rovnako ako zápis, takže ďalšie čítanie — v tomto aj v ktoromkoľvek inom requeste — ju už vráti.
- owner\_id sa riadi podľa options.key\_type — pri vlastníkoch s bigint je to int, pri UUID či ULID reťazec. Riadok, ktorý má len owner\_type alebo len owner\_id, sa importuje ako globálny.
- Poškodený JSON, JSON so skalárnou hodnotou, riadok, ktorý nie je pole, riadok bez textového key alebo hodnota, ktorá nie je reťazec, číslo, boolean ani null, vyhodí InvalidOptionPayload a neimportuje sa nič. Hodnota sa uloží ako reťazec stĺpca: z 30 bude „30“, z true „1“.
- Pri zapnutom riadení prístupu export vynechá, čo aktuálny používateľ čítať nesmie, a import odmietne každý riadok, ktorý používateľ zapisovať nesmie alebo ktorého kľúču nezodpovedá žiadne registrované nastavenie — UnauthorizedOption a neimportuje sa nič. Príkazy options:export a options:import vynucovanie obchádzajú ako každý konzolový príkaz.
- Pod Options::fake() čítajú export() a exportJson() z pamäte — tá drží to, čo by držala databáza: surové reťazce, pri šifrovanom nastavení šifrový text — a import() sa zaznamená (assertImported()) a nahrá do nej, pričom odmietne rovnaký vstup ako skutočný manager.

## Z príkazového riadku

```bash
php artisan options:export --path=storage/options.json
php artisan options:export --owner="App\Models\User" --owner-id=5

php artisan options:import storage/options.json
php artisan options:clear-cache
```

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