2015-09-14 10 views
5

私はLaravel 5.1ベースのシステムで作業しています。だから我々はそれがコントローラで、次のような機能を持っている期待どおり特定のコントローラ機能の認証Laravel 5.1

Route::resource('applicant', 'ApplicantController'); 

index, create, store, edit, update, delete 

そして、何が欲しいことだけindex機能でミドルウェア認証を適用することです私は、ルートリソースを持っています。通常は、コントローラ全体に認証を適用したい場合は、あなたがする必要があります。

public function __construct() 
{ 
    $this->middleware('auth'); 
} 

しかし、私はそれを削除し、ちょうど行うとき:

public function index() 
{ 
    $this->middleware('auth'); 
    return view('applicant.index'); 
} 

それは動作しません。私は前にこれをして、うまく動作します。 これは私のものですApplicantControllercreate関数を公開し、indexにログイン認証を適用するだけです。私はedit, update, delete

答えて

5

を使用されることはありません、あなたはまた、逆

public function __construct() 
{ 
    $this->middleware('auth', ['except' => ['create', 'store', 'edit', 'update', 'delete']]); 
} 
+0

驚嘆させる、完璧に動作を行うことができます

public function __construct() { $this->middleware('auth', ['only' => 'index']); } 

を試すことができます。ありがとう! – jackhammer013

+0

クール..私は助けてうれしいです。 – JLPuro

+0

_constructメソッドを使用する必要はありません。変更が特定のコントローラに発生するたびに、開発者はコントローラごとに変更する必要があるためです。最良の選択肢は、経路内に認証機能を追加し、コントローラを指定することです。提供された認証機能に問題がある場合は、認証機能を作成してカーネルに指定することができます。 –