Метод request->collect() у Laravel перетворює вхідні дані на колекції, що дозволяє ефективно маніпулювати даними за допомогою методів колекцій Laravel. Цей підхід спрощує обробку даних та валідацію.
// Основне використання
$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() спрощує обробку даних, надаючи доступ до методів колекцій Laravel, що робить складні перетворення даних зрозумілішими та легшими для підтримки
У сучасній веб-розробці аутентифікація є ключовою для захисту додатків і даних користувачів. Дізнайтеся, як модуль nuxt-sanctum-authentication спростить інтеграцію між Nuxt 3 та Laravel Sanctum, забезпечуючи надійний і зручний спосіб реалізації аутентифікації для вашого проєкту
Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом
PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення