## Opgave 2 (32p)

Nieuwe afspraak maken

Bij deze opdracht gaan we een formulier maken om een afspraak te maken. De gemaakte afspraak moet worden ingevoerd in de tabel 'afspraken' van de agenda database. Neem onderstaande stappen om dit voor elkaar te krijgen.

- Maak drie bestanden aan:
  - controllers/afspraak-create.php (1p) (Alle klanten selecteren en afspraak-create.view gebruikt)
  - controllers/afspraak-store.php (1p) (Afspraak opslaan)
  - views/afspraak-create.view.php (1p) (Formulier waarin de afspraak kan worden ingevoerd)
- Maak in het menu een link naar '/afspraak-create' met een bijhorende tekst (2p)
- Maak de routes aan zodat het formulier kan worden getoond en verstuurd (2p)
- Maak het webformulier waarmee de gegevens kunnen worden ingevoerd.
  - Selectbox waar een klant geselecteerd kan worden (klantgegevens moeten afkomstig zijn uit de database) (6p)
    - Als name attribuut wordt klant_id gebruikt
    - value is id van de klant
    - In de box wordt de voor- en achternaam getoond
    - Tip. Als je dit niet kan gebruik dan een input veld met type='number' name='klant_id' waar je een klant id kan invoeren
  - Een datum veld met als input type='date' (1p)
  - Een van tijd met als input type='time' (1p)
  - Een tot tijd met als input type='time' (1p)
  - Een opmerking veld (textarea) (2p)
  - Verstuur button (1p)
  - Het formulier wordt d.m.v. method="post" verstuurd naar afspraak-store (1p)
  - Denk aan de csrf() protectie om het laten werken (1p)
- Na het versturen van het formulier vind er validatie plaats op het gevuld zijn van de velden: klant_id, datum, van en tot (4p)
- De gegevens worden ingevoerd in de database (3p)
- De gebruiker krijg een flash bericht te zien als het goed is gegaan (1p)
- Indien er fouten zijn moeten deze in het formulier worden getoond (en mag er niet worden ingevoerd in de database) (5p)

Er zijn 10 bonus punten voor het invullen van de verstuurde gegevens bij validatie fouten.

Video 1 - Bestanden aanmaken
Video 2 - Afspraak opslaan
Video 3 - Select box maken
Video 4 - Bonus deel 1
Video 5 - Bonus deel 2