NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky

Model Appointment obsahuje scopes pre bežné dotazy nad rozvrhom:

use RoundlyConsulting\Appointments\Enums\Status;
use RoundlyConsulting\Appointments\Models\Appointment;

Appointment::query()->upcoming()->forParticipant($user)->ordered()->get();
Appointment::query()->between($from, $to)->get();
Appointment::query()->overlapping($start, $end)->get();
Appointment::query()->withStatus(Status::Confirmed, Status::Completed)->get();
Appointment::query()->past()->get();
ScopeFilter
upcoming()starts_at teraz alebo neskôr.
past()starts_at pred týmto okamihom.
between($from, $to)starts_at medzi dvoma okamihmi, vrátane.
overlapping($start, $end)Začína pred $end a končí po $start (alebo nemá koniec). Nadväzujúce intervaly sa neprekrývajú.
withStatus(Status ...$statuses)Ktorýkoľvek z daných stavov — variadický.
forParticipant(Model $participant)Termíny, na ktorých sa daný model zúčastňuje.
ordered()Zoradené podľa starts_at, od najskoršieho.
withinRadius(Coordinates $center, float $km)Miesto konania v ohraničujúcom obdĺžniku okruhu — z geolocation-for-laravel.

Rozvrh konkrétneho modelu

HasAppointments vracia query builder, takže rovnaké scopes nadviažete na akýkoľvek model účastníka:

// the same scopes chain off HasAppointments
$user->appointments()->upcoming()->withStatus(Status::Confirmed)->ordered()->get();
$room->appointments()->overlapping($start, $end)->exists();

Časové scopes porovnávajú so stĺpcami v UTC, takže ich argumenty Carbon môžu byť v ľubovoľnom pásme. Termíny zmazané cez soft delete vylúči scope SoftDeletes z Eloquentu, rovnako ako všade inde v Laraveli.

Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

Ďalšie spôsoby podpory vrátane kryptomien

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.