Laravel 5.4 Если оператор не работает в __construct ()

В основном это моя __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);
}

0

Решение

Думаю, если заработка сработает, проблема будет в редиректе. По крайней мере, в L4.2 у меня была такая же проблема, только редирект не работал.

В laravel 4.2 работает send (), но я еще не использовал его в L5, поэтому попробуйте, если он работает:

return redirect('login')->send();
1

Другие решения

Ваша сессия не будет загружена. Изменить ваш контроллер __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,
];
0

Назовите свой маршрут входа в систему как login тогда попробуйте это:

перенаправление () -> маршрут ( ‘войти в’);

-1
По вопросам рекламы [email protected]