基本上這是我的控制器的__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