2015-11-02 10 views
6

私が使用することができますいずれかAuth :: check()またはAuth :: user() - Laravel 5.1を使用するのはどれですか?私は、ユーザーが自分のLaravel 5.1アプリケーション内でログインしているかどうかを確認したい場合は

if (Auth::user()) {...} 

または

if (Auth::check()) {...} 

かどうかをチェックするときに、他の上に1を好む理由がありますユーザーはログインしていますか?

+0

私の答えを見てください。 :) –

答えて

6

いいえ、受け入れられた回答が正しくありません。

Auth::check()Auth::user()になる。私が覚えている限り、それはそうした方法でした。

つまり、Auth::check()Auth::user()を呼び出し、その結果を取得して、そのユーザーが存在するかどうかを確認します。主な違いは、ユーザーがあなたのためにnullであるかどうかをチェックし、ブール値を取得することです。

これは、チェック機能である:あなたが見ることができるように

public function check() 
{ 
    return ! is_null($this->user()); 
} 

、それがnullかどうuser()方法、小切手を呼び出し、その後、ブール値を返します。

+1

正直なところ、わかりません。 :)しかし私のために、それは方法の背後にある意図です。ユーザーがログインしているかどうかをチェックしたい場合はAuth :: check()を書くのが好きです。ユーザーがゲストかどうかを確認する 'Auth :: guest()'を書くのが好きです。 '!Auth :: check()'を実行するよりも読みやすいです。現在ログインしているユーザーを取得したい場合、 'Auth :: user()'と書くのが好きです。この場合PHPは動的な言語なので、おそらく 'Auth :: user()'で取り除くことができますが、もう少し明示的にすることが役に立ちます。 –

+0

十分な、それは私のために働く – tam5

3

ユーザーがログインしているかどうかを確認したい場合は、Auth::check()がより正確です。

Auth::user()は、単にセッションを確認する必要があるAuth::check()よりもデータベース呼び出しを行います(やや重くなります)。

-1
Auth::guard('admin')->user()->email 

これは私のために働いてみてください。

関連する問題