メソッドは、インクリメンタルなJSONデータストリーミングを有効にすることにより、堅牢なソリューションを提供します。
streamJson
streamJson()
実用的なアプリケーション:在庫管理
streamJson
詳細な製品情報と関連するサプライヤーとバリアントデータを備えた大規模な在庫データベースを含むシナリオを検討してください。 実装
response()->streamJson(['data' => $yourDataset]);
この例は、n 1クエリの問題を防ぐために、熱心な読み込み()を活用します。 メソッドは効率的な反復を可能にしますが、
は、ストリーミングのために各インベントリアイテムをフォーマットします。streamJson
ストリーミング出力:
<?php namespace App\Http\Controllers; use App\Models\Inventory; class InventoryController extends Controller { public function list() { return response()->streamJson([ 'inventory' => Inventory::with('supplier', 'variants')->cursor()->map(function ($item) { return [ 'id' => $item->id, 'sku' => $item->sku, 'quantity' => $item->quantity, 'supplier' => $item->supplier->name, 'variants' => $item->variants->pluck('name')->toArray(), // Ensure variants is an array ]; }), ]); } }
出力は、これに似たJSONストリームになります
with
cursor()
この増分配信により、ブラウザはすぐにデータのレンダリングを開始でき、初期読み込みとプログレッシブUIの更新によりユーザーエクスペリエンスが向上します。 単一ロード処理には大きすぎるデータセットを扱う場合、map()
は非常に貴重です。 大幅なパフォーマンスブーストとスムーズなユーザーエクスペリエンスを提供します。
以上がStreamjson()を使用したLaravelでの効率的な大規模なデータセット処理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。