Heim >Backend-Entwicklung >PHP-Tutorial >Erzeugen von sequentiellen Laravel -Sammlungen
Wenn Sie eine Sammlung mit einer bestimmten Anzahl berechneter Elemente erstellen müssen, bietet die Times -Methode von Laravel eine elegante Lösung. Diese Methode ist besonders nützlich, um Sequenzen, Zeitfenster, Paginierungsverbindungen oder jedes Szenario zu generieren, das nummerierte Iterationen erfordert.
<!-- Syntax highlighted by torchlight.dev -->// Generate multiplication table of 5 $fives = Collection::times(10, function ($number) { return $number * 5; }); // [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
Lassen Sie uns ein praktisches Beispiel für einen Besprechungsplaner untersuchen, der verfügbare Zeitfenster generiert:
<!-- Syntax highlighted by torchlight.dev --><?php namespace App\Services; use Carbon\Carbon; use Illuminate\Support\Collection; class MeetingScheduler { public function generateTimeSlots(Carbon $date, array $config = []): Collection { $startTime = $config['start_time'] ?? '09:00'; $endTime = $config['end_time'] ?? '17:00'; $duration = $config['duration'] ?? 30; $slots = $this->calculateSlotCount($startTime, $endTime, $duration); return Collection::times($slots, function ($slot) use ($date, $startTime, $duration) { $start = Carbon::parse($date->format('Y-m-d') . ' ' . $startTime) ->addMinutes(($slot - 1) * $duration); $end = $start->copy()->addMinutes($duration); return [ 'id' => $slot, 'start_time' => $start->format('H:i'), 'end_time' => $end->format('H:i'), 'formatted' => sprintf( '%s - %s', $start->format('g:i A'), $end->format('g:i A') ), 'is_available' => !$this->isSlotBooked($start, $end) ]; }); } private function calculateSlotCount($start, $end, $duration): int { $startMinutes = Carbon::parse($start)->diffInMinutes(Carbon::parse($end)); return (int) floor($startMinutes / $duration); } private function isSlotBooked(Carbon $start, Carbon $end): bool { // Check against existing bookings return false; } }
Die Times -Methode vereinfacht den Prozess der Generierung sequentieller Daten und bietet eine saubere und effiziente Möglichkeit, Sammlungen mit berechneten Werten zu erstellen.
Das obige ist der detaillierte Inhalt vonErzeugen von sequentiellen Laravel -Sammlungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!