2016-11-29 12 views
3

私はlaravelフレームワークを初めて使い、自分のWebサイトにログインシステムを実装しようとしています。私のウェブサイトにはランディングページがあります。ユーザーのログイン状況に基づいて私はこのリンクを以下のように変更する必要があります。laravel 5.3の私のビューでAuth :: checkにアクセスできない

<ul class="secondary_menu"> 
    @if(Auth::guard('customer')->check()) 
    <li><a href="{{url('/logout')}}" >Logout</a></li> 
    @else 
    <li><a href="{{url('/login')}}" >Login or Register</a></li> 
    @endif 
</ul> 

ここでロードを担当するコントローラは、私が質問の他のslimier一種で提案されているようにClass 'Auth' not found

は、私がuse Authuse \Authを追加してみてくださいと言っていることのエラーを取得しています。このビュー

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Http\Requests; 

class CustomerController extends Controller 
{ 
    public function index() 
    { 
     return view('public.index'); 
    } 

} 

です私はうまくいきませんでした。私は間違って何をしていますか?ビューから電話Authを確認することはできませんか?

+0

あなたの '' 'config/app.php'''ファイルでは、' '' Auth '=> Illuminate \ Support \ Facades \ Auth :: class'''がエイリアスにありますか? – aceraven777

答えて

1

あなたのコントローラでこれを試してみてくださいAuth::ファサードにはグローバルヘルパーを使用できます:

auth()->check(); 
auth()->user(); 
+0

ありがとうございます、特定のガード(私の場合は「顧客」)の認証を確認するにはどうすればいいですか?私のWebアプリケーションにはパブリック(顧客)と管理者(管理者)の両方が終了しているためです。 –

+0

'Auth ::'を 'auth()'に変更するだけです。だから'auth() - > guard( 'customer') - > check() 'はうまくいくはずです。 –

+1

ありがとうございました。問題を修正しました。 –

2

コード内で認証を使用するには、次のコードを入れてください。その後、

use Illuminate\Support\Facades\Auth; 

など、それを使用します。

if (Auth::check()) 
{ 
    // your code 
} 
+0

コントローラーに 'Use Illuminate \ Support \ Facades \ Auth;'を追加しても問題は解決されませんでした。このif文はどういう意味ですか?ブレードの構文に問題があると言っていますか? –

0

を代替案として

use Illuminate\Support\Facades\Auth; 
関連する問題