2016-07-24 8 views
3

私はLaravelプロジェクトに取り組んでいます。プロジェクトには、パブリック(サイトの非認証セクション)と認証セクション(管理者)があります。ログイン/ログアウトの両方で/(インデックス)ルートを2回使用するにはどうすればよいですか?

パブリックホームページビューを表示するために/ routeを使用しようとしていますが、認証されると、同じ/ルートに管理者認証ビューが表示されます。

この

です未遂コード:

routes.phpの私がログアウトして/ルート、公共コントローラにアクセスしようとしています

Route::auth(); 

Route::get('/', function() { 
     return view('Public.home'); 
    }); 

Route::group(['middleware' => ['auth']], function() { 

    Route::get('/', function() { 
     return view('Authenticated.home'); 
    }); 
}); 

問題 (Public.home )は認証されたルート(上記ルートグループの 'auth'ミドルウェアの下に置かれている)と見なされます。

ミドルウェア認証は、保護された(認証された)ルートにアクセスするときに/にリダイレクトするように設定されています。

Authenticate.php

<?php 

namespace App\Http\Middleware; 

use Closure; 
use Illuminate\Support\Facades\Auth; 

class Authenticate 
{ 
    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @param string|null $guard 
    * @return mixed 
    */ 
    public function handle($request, Closure $next, $guard = null) 
    { 
     if (Auth::guard($guard)->guest()) { 
      if ($request->ajax() || $request->wantsJson()) { 
       return response('Unauthorized.', 401); 
      } 

      return redirect()->guest('/'); 
     } 

     return $next($request); 
    } 
} 

私はLaravel 5.2を使用しています。

答えて

3

これを回避するにはいくつかの方法があります。

最初に、authミドルウェアからルートを除外し、ログインしているかどうかを確認し、それに基づいて適切なビューを返すようにしてください。独自のミドルウェアの記述の詳細情報フォア

public function handle($request, Closure $next) 
{ 
    if (Auth::check()) 
    { 
     //The user is logged in 
     return view('Authenticated.home'); 
    } 

    else 
    { 
     //The user is not logged in 
     return view('Public.home'); 
    } 
} 

、このためのドキュメントを参照してください。

このような何かが、トリックを行うだろう。

また、('home')という1つのビューを作成してから、ifステートメントを使用して、ログインしているかどうかを確認することもできます。このような

何かがトリックを行うだろう:

@if (Auth::check()) 
    //User is logged in 
    //HTML that we want to show to authenticated user 
@else 
    //User is not logged in 
    //HTML that we want to show to general public 
@endif 
+0

が、これは働いていた、ありがとうございます。 –

関連する問題