Code für Reservierungen schreiben (API)

8

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]

zu bekommen

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%     
leo0019 06.01.2017, 12:24
quelle

1 Antwort

2

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

%Vor%

Jetzt können wir \Car::whereAvailableBetween($date_start, $date_end) verwenden. Um es als JSON von Ihrem Controller zurückzugeben, könnten Sie:

%Vor%

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:

%Vor%

Beachten Sie, dass Sie einem Modell auch ein Attribut hinzufügen können. Also könnten wir $car->available = true

machen     
nkconnor 09.01.2017 21:08
quelle

Tags und Links