Laravel 5 обратный редирект не работает должным образом - PullRequest
0 голосов
/ 28 января 2020

У меня есть контроллер с некоторыми функциями. В каждой функции я получаю пользовательские данные, разделяя их с Contoller.php

In контроллера. php

public function share_user_data() {
    $user = Auth::user();
    $this->checkValidation($user);
    $this->user = $user;
    View::share('user', $user);
}

public function checkValidation($user){
    if($user->email_activated == 0){
        var_dump($user->email_activated); // I get: int(0)
        return redirect('/verifyEmail');
    }
}

В другом контроллере

public function viewCategory(Category $category){
    $this->share_user_data(); // here's the check
    $this->get_site_lang();
    $products = $category->products;
    return view('category', compact('category','products'));
}

Но Я получаю представление категории и не перенаправлен на маршрут verifyEmail. Как это исправить и почему это происходит?

1 Ответ

1 голос
/ 28 января 2020

Функция контроллера, вызываемая маршрутом, отвечает за ответ. Я полагаю, это viewCategory() в вашем примере?

Ваша viewCategory() функция всегда возвращает view(). Вместо этого он должен вернуть redirect(). Я думаю, что основная функция должна отвечать за выбор вывода запроса.

private function checkValidation($user) {
    return $user->email_activated == 0;
}

public function viewCategory(Category $category) {
    $user = Auth::user();

    /* ... call to share_user_data() or whatever ... */    

    if ($this->checkValidation($user)) {
        return redirect('/verifyEmail');
    }

    return view('category', compact('category','products'));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...