Rumah >pembangunan bahagian belakang >tutorial php >Menjana koleksi Larave berurutan
Apabila anda perlu membuat koleksi dengan bilangan unsur yang dikira tertentu, kaedah Times Laravel menyediakan penyelesaian yang elegan. Kaedah ini amat berguna untuk menjana urutan, slot masa, pautan penomboran, atau sebarang senario yang memerlukan lelaran bernombor.
<!-- 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]
mari kita meneroka contoh praktikal penjadual mesyuarat yang menghasilkan slot masa yang tersedia:
<!-- 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; } }
Kaedah Times memudahkan proses menghasilkan data berurutan, menyediakan cara yang bersih dan cekap untuk membuat koleksi dengan nilai yang dikira.
Atas ialah kandungan terperinci Menjana koleksi Larave berurutan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!