معالجة جمع بيانات 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() تبسط معالجة الإدخال من خلال توفير الوصول إلى طرق المجموعات في لارافل، مما يجعل التحويلات المعقدة للبيانات أكثر قابلية للقراءة والصيانة.
جميع الحقوق محفوظة © 2025 Laravel | عربي