Heim >Backend-Entwicklung >PHP-Tutorial >Erhalt von Sammelschlüssel in Laravel -API -Ressourcen
Laravel nutzt den Index der Ressourcensammlung standardmäßig beim Erstellen einer API. In Situationen, in denen der ursprüngliche Schlüssel eine Bedeutung hat, behält das Attribut preserveKeys
die erwartete Datenstruktur bei.
Hier ist ein Beispiel dafür, wie diese Eigenschaft in einer Laravel-Anwendung verwendet wird:
<?php namespace App\Http\Resources; use Illuminate\Http\Resources\Json\JsonResource; class KeyValueResource extends JsonResource { public $preserveKeys = true; public function toArray($request) { return [ 'value' => $this->value, 'updated_at' => $this->updated_at, 'metadata' => $this->metadata ]; } }
Ein weiteres Beispiel:
<?php namespace App\Http\Controllers; use App\Models\Setting; use App\Http\Resources\SettingResource; class SettingController extends Controller { public function index() { $settings = Setting::all()->keyBy('key'); return SettingResource::collection($settings); } } class SettingResource extends JsonResource { public $preserveKeys = true; public function toArray($request) { return [ 'value' => $this->formatValue(), 'type' => $this->type, 'last_updated' => $this->updated_at->toDateTimeString(), 'editable' => $this->is_editable ]; } }
Dies gibt eine Antwort wie folgt zurück:
{ "data": { "app_name": { "value": "My Application", "type": "string", "last_updated": "2024-03-15 10:30:00", "editable": true }, "max_upload_size": { "value": 10485760, "type": "integer", "last_updated": "2024-03-15 10:30:00", "editable": true } } }
preserveKeys
$preserveKeys = true
Das obige ist der detaillierte Inhalt vonErhalt von Sammelschlüssel in Laravel -API -Ressourcen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!