معالجة جمع بيانات Request باستخدام Laravel
request->collect()
يحول بيانات الإدخال إلى مجموعات، مما يُمكّن من معالجة البيانات بكفاءة عالية باستخدام طرق المجموعات في لارافل. هذا النهج يبسط عمليات معالجة الإدخال وعمليات التحقق.
// Basic usage$input = $request->collect();$filtered = $input->filter()->map(...);
فيما يلي مثال على نظام معالجة الطلبات مع معالجة إدخال معقدة:
<?php namespace App\Http\Controllers; use App\Models\Order;use Illuminate\Http\Request; class OrderController extends Controller{ public function bulkProcess(Request $request) { $result = $request->collect() ->reject(fn($item) => empty($item['product_id'])) ->map(function ($item) { return [ 'product_id' => $item['product_id'], 'quantity' => max(1, (int) $item['quantity']), 'price' => $this->calculatePrice($item), 'processed_at' => now() ]; }) ->groupBy('product_id') ->map(function ($group) { return [ 'total_quantity' => $group->sum('quantity'), 'total_value' => $group->sum('price'), 'items' => $group->values() ]; }); return response()->json([ 'processed' => $result->count(), 'summary' => $result ]); } private function calculatePrice($item): float { $basePrice = Product::find($item['product_id'])->price; return $basePrice * $item['quantity']; }}
طريقة request->collect()
تبسط معالجة الإدخال من خلال توفير الوصول إلى طرق المجموعات في لارافل، مما يجعل التحويلات المعقدة للبيانات أكثر قابلية للقراءة والصيانة.