Serializácia
toArray(), toJson(), response()->json($model) aj API Resources vracajú pre každý prekladateľný atribút vyhodnotenú hodnotu jazyka — rovnakú ako $model->name — nie surovú uloženú JSON mapu:
app()->setLocale('en');
$topic->toArray()['name']; // "Investing" (localized, through the fallback chain)
$topic->toJson(); // {"name":"Investing", …}
TopicResource::make($topic); // {"name":"Investing"}
response()->json($topic); // same resolved valuesPlatný FallbackMode sa rešpektuje: model v režime None, ktorý má nastavený len sk, serializuje name pri en requeste ako null. Uložené dáta ostávajú nedotknuté — mení sa len tvar výstupu.
Sprístupnenie celej mapy
Ak administrácia potrebuje všetky jazyky, zavolajte getTranslations() explicitne — napríklad v samostatnom resource:
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
final class AdminTopicResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'id' => $this->id,
'name' => $this->getTranslations('name'), // ['en' => '…', 'sk' => '…']
'missing' => $this->missingTranslations(), // field => missing locales
'completeness' => $this->translationCompleteness(), // 0.0–1.0
];
}
}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.