Вызов перенаправления внутри статического метода другого класса - PullRequest
0 голосов
/ 30 августа 2018

В моем контроллере я вызываю внешний статический метод, который проверяет статус пользователя и пытается перенаправить, но не удается.

public function my_method(){
    SomeOtherClass::redirect_if_not_logged_in();
}

А в SomeOtherClass есть код:

static function redirect_if_not_logged_in()
{
    $check_login = Auth::check();

    if($check_login === false){
        return redirect('/');
    }

}

Чего мне не хватает? Спасибо.

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Если вы прервете в статическом методе, вам не придется беспокоиться о возврате ответов перенаправления. Это позволит вам выполнить код вне вашей проверки подлинности в контроллере.

static function redirect_if_not_logged_in()
{    
    if(!Auth::check()){
        abort(403);
    }
}
0 голосов
/ 30 августа 2018

Было бы лучше прочитать документы и понять, как работает промежуточное программное обеспечение, потому что оно, вероятно, избавит вас от многих подобных головных болей в будущем. Однако для краткости вы всегда можете изменить код, чтобы статический метод всегда возвращал что-то ...

static public function redirect_if_not_logged_in()
{
    $check_login = Auth::check();

    if ($check_login === false) {
        return redirect('/');
    }
    return null;
}

Затем проверьте, не является ли ответ этого метода нулевым, и не возвращает ли он ваш контроллер.

public function my_method()
{
    $results = SomeOtherClass::redirect_if_not_logged_in();

    if (null !== $results) {
        return $results;
    }
    // continue
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...