これは基本的に私のコントローラの__constructです。ログインしていないユーザがこのコントローラのアクセスルートを試行するとき、彼は基本的にログインルートにリダイレクトされます。これまでのところとても良い - 条件が働いていれば、リダイレクトが動作していて、ルートが動作しています。Laravel 5.4 If文が__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()を使わないでどこかのリダイレクトがなぜ動作するのか私の自己を説明することはできません。 –
問題は、リダイレクトがコンストラクタで呼び出されることです。そして、それは何とかリダイレクトアクションを書き換えています。 –
@コンストラクタから返される値はすべて無視されることに注意してください。これは、 'send'メソッドがおそらくリダイレクトヘッダを送信した後にスクリプトを終了するためだけに機能します。 – Furgas