I’m using CodeIgniter 4 and hope someone here can help me.
I’m trying to post a form to the current page and process it there. To this end I addes a matched route to Routes.php:
$routes->match(['get', 'post'], 'klanten/(:segment)', 'Klanten::bewerk/$1');
I do not have a route set up that overwrites this route. Here is the full routes list:
$routes->match(['get', 'post'], 'soorten/(:segment)', 'Soorten::index/$1');
$routes->match(['get', 'post'], 'deurbel/(:segment)/(:segment)', 'Deurbel::index/$1/$2');
$routes->get('klanten', 'Klanten::index');
$routes->post('klanten/toevoegen', 'Klanten::toevoegen');
$routes->match(['get', 'post'], 'klanten/(:segment)', 'Klanten::bewerk/$1');
$routes->get('/', 'Dashboard::index');
When I post the form somehow the request method keeps coming back as get instead of post… Here is my form HTML:
<form action="/klanten/<?= esc($klant['slug']) ?>/" method="post">
<div class="row">
<div class="col-12">
<div class="form-group">
<label for="naam">Naam: </label>
<input type="text" class="form-control" name="naam" id="naam" value="<?= $klant['naam'] ?>">
</div>
<div class="form-group">
<label for="woonplaats">Woonplaats: </label>
<input type="text" class="form-control" name="woonplaats" id="woonplaats" value="<?= $klant['woonplaats'] ?>">
</div>
</div>
</div>
<?php if(isset($validation)): ?>
<div class="row">
<div class="alert alert-danger" role="alert">
<?= $validation->listErrors() ?>
</div>
</div>
<?php endif;?>
<div class="row">
<div class="row">
<div class="col-12 col-sm-4">
<button type="submit" class="btn btn-success">Opslaan</button>
</div>
</div>
</div>
</form>
As you can see, I do have the forms method as post.
The debug bar does show the route is there:
By now I’m ready to smash my head against the wall, because I can’t figure out what is going on here. I’m hopinh you guys can help me and prevent me from doing that