基本上这是我的控制器的__construct。当未登录的用户尝试在该控制器中访问路由时,他基本上被重定向到登录路由。到目前为止这么好 - 如果条件正在工作,重定向工作,路由正在工作。Laravel 5.4如果语句在__construct()中不起作用
所以下次我尝试检查,如果用户访问令牌是有效的,如果它不是,我将他重定向到注销路线 - 简化我的例子,我不这样做,而是我是否$ test_var等于1并重定向到登录,因为我们已经知道此路由名称正在工作。
无论是第一如果($ test_var == 1),没有第二如果($ test_var == 1)触发 - 有没有重定向或死亡。
我甚至尝试如果(1 == 1) ..
我甚至想:
if(isset($this->userCredentials))
return redirect('login');
,它仍然不会触发。这真是奇怪,因为如果我不先登录如果(isset ...工作和重定向,但这段代码是做什么,如果我在我登录:!
貌似如果的问题,但是这超出如果量子obviosly理论..
这是构建的全码:。
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);
}
谢谢。它以这种方式解决了问题。我仍然无法解释我的自我为什么某个地方重定向没有发送()。 –
问题是,重定向是在构造函数中调用的。它以某种方式重写重定向动作。 –
@АтанасАтанасов请记住,您从构造函数返回的任何值都将被忽略。这仅仅是因为'send'方法在发送重定向头之后可能会退出脚本。 – Furgas