Почему контроллер не перенаправляет на указанный маршрут при публикации данных формы через AJAX? - PullRequest
0 голосов
/ 06 июня 2018

Я использую 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, поэтому не уверен, что делаю неправильно.

...