Я использую роутер Alto для проекта. Моя проблема возникает, когда я отправляю форму, я не могу найти решение для работы перенаправления. Структура моего проекта:
root
|/elements
|- layout.php
|/public
|- index.php
|/templates
|- add.php
|- home.php
|- login.php
Я пробовал разные ссылки в атрибутах действия. Я также попытался оставить это пустым и использовать заголовок («Местоположение») для перенаправления.
Вот как я управляю маршрутизатором:
$router = new AltoRouter();
$router->map('GET', '/', 'home', 'home');
$router->map('GET', '/login', 'login', 'login');
$router->map('GET', '/add', 'add', 'add');
$match = $router->match();
if (is_array($match)) {
if (is_callable($match['target'])) {
call_user_func_array($match['target'], $match['params']);
} else {
$params = $match['params'];
ob_start();
require "../templates/{$match['target']}.php";
$pageContent = ob_get_clean();
}
require '../elements/layout.php';
} else {
echo '404';
}
Теперь на странице добавления у меня есть форма, которую следует добавить в мою базу данных и затем перенаправить на домашнюю страницу. Вот где я застрял (также, часть базы данных для вставки может содержать ошибки, но я буду работать над этим позже):
<?php
use App\App;
if (!empty($_POST)) {
$he = App::getPDO()->prepare("INSERT INTO huiles(name_simple, name_science, elements, dilution, props) VALUES (?, ?, ?, ?, ?)");
$params = [
$_POST['name_simple'],
$_POST['name_science'],
$_POST['elements'],
$_POST['dilution'],
$_POST['props']
];
$he->execute($params);
}
?>
<form action="<?= $router->generate("home") ?>" method="post">
<div class="form-group">
<label for="name_simple">Nom</label>
<input type="text" name="name_simple" class="form-control">
</div>
<div class="form-group">
<label for="name_simple">Nom scientifique</label>
<input type="text" name="name_science" class="form-control">
</div>
<div class="form-group">
<label for="name_simple">Elements</label>
<input type="text" name="elements" class="form-control">
</div>
<div class="form-group">
<label for="name_simple">Dilution</label>
<input type="text" name="dilution" class="form-control">
</div>
<div class="form-group">
<label for="name_simple">Propriétés</label>
<input type="text" name="props" class="form-control">
</div>
<button class="btn btn-primary">Ajouter</button>
</form>
Как мне обработать маршрутизатор для перенаправления на домашнюю страницу послеотправить (а также после того, как данные добавлены в БД)?