Ich habe die meiste App gemacht, an der ich arbeite, und jetzt denke ich, dass ich in einer Veränderung feststecke. Ich habe die Ideen, es zu tun, aber das Problem konnte ich wirklich nicht umsetzen. Ich hoffe, ich kann hier Hilfe finden.
Ich habe diesen komplizierten Code. Es dauert zwei Daten und überprüfen CarReservation Pivot-Tabellen für die Überlappung.
%Vor%Die Beziehung ist im Reservierungsmodell:
%Vor%Hier ist der Code, den ich versuche zu debuggen und es zum Laufen zu bringen:
%Vor%Aber ich brauche Hilfe, um diese Schritte zu schreiben, und ich denke, es würde perfekt funktionieren.
(1) Eine Methode, um die Ernennungsnummern aus car_reservation
innerhalb eines optionalen Datumsbereichs zu erhalten. Bsp .: getAppointments($from=null,$to=null
(2) Methode, um alle Autos zu loopen und sie in Array anzuordnen. Bsp .: getCars
(3) Eine Methode zur Überprüfung der Verfügbarkeit. Bsp .: isSlotAvailable($from,$to,$appoitments);
(4) Eine Methode, die die Arbeit erledigt:
%Vor% Dann hoffe ich am Ende etwas wie ['Car' => true, 'Car' => false]
Sie werden wirklich dankbar sein. Ich habe mir viele Codes ausgedacht, aber alle sehen aus wie meine Originale.
AKTUALISIEREN
%Vor%dann in meinem Controller
%Vor%Wir können die Leistungsfähigkeit der Datenbank nutzen, um verfügbare Autos im Zeitfenster zu filtern. Mit dem Query Builder können wir jedes Auto, das nicht hat, im angegebenen Fenster reservieren.
In Car
Jetzt können wir \Car::whereAvailableBetween($date_start, $date_end)
verwenden. Um es als JSON von Ihrem Controller zurückzugeben, könnten Sie:
BEARBEITEN
Ich habe übersehen, dass das gewünschte Endformat
ist['Auto' = & gt; wahr, 'Auto' = & gt; falsch]
Sie können also die obige Methode ändern und eine Standardsammlung mit diesen Details zurückgeben, indem Sie die whereNull
-Klausel entfernen:
Beachten Sie, dass Sie einem Modell auch ein Attribut hinzufügen können. Also könnten wir $car->available = true
Tags und Links php mysql laravel laravel-5.3