В основном это моя __construct моего контроллера. Когда незарегистрированный пользователь пытается перейти на маршруты доступа в этом контроллере, он в основном перенаправлен на авторизоваться маршрут. Пока все хорошо — если условие работает, редирект работает, маршрут работает.
Итак, затем я пытаюсь проверить, является ли токен доступа пользователя действительным, а если нет, я перенаправлю его на выйти route — чтобы упростить мой пример, я не делаю этого, но вместо этого я проверяю, равен ли $ test_var 1 и перенаправляем ли я в авторизоваться как мы уже знаем это название маршрута как работающее.
Ни первый если ($ test_var == 1), не второй если ($ test_var == 1) триггер — нет перенаправления или смерти.
Я даже пытался если (1 == 1) ..
Я даже пытался:
if(isset($this->userCredentials))
return redirect('login');
и это все еще не срабатывает. Это действительно странно, как будто я не вошел первым если (! Исеть … работает и перенаправляет, но этот кусок кода ничего не делает, если я вошел в систему:
Выглядит как Если это проблема, но это если за пределами квантовой теории ..
Это полный код конструкции:
namespace App\Http\Controllers;
use Input;
use Session;
use Auth;
use Redirect;
class stackoverflowController extends ConnectionController
{
public function __construct()
{
$this->middleware('auth');$this->userCredentials = Session::get('userCredentials');if(!isset($this->userCredentials))
return redirect('login');
$test_var = 1;
if($test_var == 1)
return redirect('login');
if($test_var == 1)
die(1);
if(1 == 1)
die(1);
}
Думаю, если заработка сработает, проблема будет в редиректе. По крайней мере, в L4.2 у меня была такая же проблема, только редирект не работал.
В laravel 4.2 работает send (), но я еще не использовал его в L5, поэтому попробуйте, если он работает:
return redirect('login')->send();
Ваша сессия не будет загружена. Изменить ваш контроллер __construct
в
$this->middleware(function ($request, $next) {
$this->userCredentials = Session::get('userCredentials');
if(!isset($this->userCredentials))
return redirect('login');
$test_var = 1;
if($test_var == 1)
return redirect('login');
if($test_var == 1)
die(1);
if(1 == 1)
die(1);
return $next($request);
});
или измените ваше приложение \ Http \ Kernel.php на
protected $middleware = [
...
\Illuminate\Session\Middleware\StartSession::class,
];
Назовите свой маршрут входа в систему как login
тогда попробуйте это:
перенаправление () -> маршрут ( ‘войти в’);