## Routes

We hebben nu alle verschillende database transacties achter de rug. Meestal geldt voor de meeste tabellen in de database dat je een view, create, update, delete nodig hebt. Dit wordt ook wel CRUD genoemd.

De volgende routes zijn daarvoor nodig

- index (overzicht van alle posts) GET
- view (overzicht van één post) GET
- create (formulier om een post aan te maken) GET
- edit (formulier om te wijzigen) GET
- store (opslaan van de gegevens) POST
- update (wijzigen van de gegevens) POST
- delete (verwijderen van de gegevens) POST

## Optioneel

Veel applicaties gebruiken meerdere methode dan GET en POST zoals PUT, PATCH, DELETE
Onze Router.php is daarop voorbereid alleen werkt het niet door in je form method='delete' mee te geven.

Wil je deze methodes wel gebruiken dan kan dit door in je form de functie `method_put()` of `method_delete()` te gebruiken. Let op dat de method op `post` komt te staan

Voorbeeld:

    <form action="/berichten/<?= $post['id'] ?>" method="post">
      <?= csrf() ?>
      <?= method_put() ?>
      <label for="titel">Titel</label>
    ...

Indien gebruik wordt gemaakt van een REST-request gaat het dan zo uit zien

URL | Method | Endpoint | Beschrijving
/posts | get | /controllers/posts/index.php | Overzicht van alle posts
/posts/create | get | /controllers/posts/create.php | Aanmaken nieuwe post
/posts | post | /controllers/posts/store.php | Opslaan van de nieuwe post
/posts/{id} | get | /controllers/posts/show.php | Bekijken van een post
/posts/{id}/edit | get | /controllers/posts/edit.php | Bewerken van een post
/posts/{id} | put | /controllers/posts/update.php | Opslaan van een bewerkte post
/posts/{id} | delete | /controllers/posts/destroy.php | Verwijderen van een post

Vooral als je met meerdere mensen aan een project werkt kan het handig zijn om je aan dit soort conventies te houden.