Schéma a ukladanie
Balík registruje Blueprint makro translatable(), ktoré vytvorí stĺpec jsonb. Použite ho vo vlastných migráciách:
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
Schema::create('topics', function (Blueprint $table): void {
$table->id();
$table->translatable('name'); // jsonb column
$table->translatable('description')->nullable();
$table->localizedSlug('slug'); // sluggable's macro — jsonb / json / text per engine
$table->timestamps();
});Makro sa registruje už vo fáze register() providera, takže je dostupné v každej migrácii. localizedSlug() je makro zo sluggable pre stĺpce slugov podľa jazyka.
Formát uloženia
Každý atribút obsahuje obyčajný JSON objekt s kľúčmi podľa jazyka — bez akéhokoľvek obalu:
{"en": "Investing", "sk": "Investovanie"}Prázdne hodnoty a null sa nikdy neukladajú a atribút bez prekladov sa zapíše ako prázdny objekt. Riadky zapísané ručne písaným vzorom „json cast + accessor pre jazyk“ sa načítajú rovnako, preto pri prechode na tento balík netreba migrovať dáta. Nový jazyk neskôr pridáte zmenou konfigurácie — mapa jednoducho získa ďalší kľúč.
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 kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
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.