Я использую Slim 3 Framework, веточку для управления шаблонами и Eloquent ORM.Мой AuthController.php выглядит следующим образом:
class AuthController extends Controller{
public function getSignUp($request, $response){
return $this->view->render($response, 'auth/signup.twig');
}
public function postSignUp($request, $response){
$user = User::create([
'firstname' => $request->getParam('first-name'),
'lastname' => $request->getParam('last-name'),
'email' => $request->getParam('email'),
'zipcode' => $request->getParam('zipcode'),
'phonenumber' => $request->getParam('phone-number'),
'username' => $request->getParam('username'),
'password' => password_hash($request->getParam('password'), PASSWORD_DEFAULT)
]);
return $response->withRedirect($this->router->pathFor('home'));
}
}
Написанная функция AJAX выглядит следующим образом:
$(document).ready(function(){
$('#signup').click(function(event){
event.preventDefault();
$.ajax({
type: "post",
url: "{{ path_for('auth.signup') }}",
data: $(this).serialize()
});
});
});
. В файле rout.php есть два следующих маршрута, связанных с процессом регистрации
$app->get('/auth/signup', 'AuthController:getSignUp')->setName('auth.signup');
$app->post('/auth/signup', 'AuthController:postSignUp');
Теперь все работает нормально.Данные правильно размещаются через AJAX и вставляются в таблицу «пользователи».Но этот код
return $response->withRedirect($this->router->pathFor('home'));
не работает.Даже после публикации перенаправление не происходит.Если таблица обновляется, это означает, что код вставки в функции postSignUp () работает.Тогда почему оператор return не работает?
Я довольно плохо знаком с платформой Slim 3, а также с парадигмой MVC, поэтому не уверен, что делаю неправильно.