2016-10-17 9 views
1

방금 ​​laravel 5.2를 설치했는데 auth register, login 및 reset password를 만들었지 만 모든 사용자 (로그인하지 않은 사용자)가 액세스 할 수있는 프로젝트의 색인을 만들고 싶습니다. 내가 만들려고 시도했습니다Laravel 5.2 - 미들웨어 인증

Route :: get ('/', HomeController @ home ');

하지만이보기는 기록 된 사용자에게만 사용 가능합니다.

MY ROUTES

Route::auth(); 
Route::get('/home', '[email protected]'); 
// POST - FORM CREA 
Route::get('/crea-regalo', '[email protected]'); 
Route::post('/crea-regalo', '[email protected]'); 
// LISTA ANNUNCI PRINCIPALE 
Route::get('/', '[email protected]'); 

MY 홈 컨트롤러

class HomeController extends Controller 
{ 
    /** 
    * Create a new controller instance. 
    * 
    * @return void 
    */ 
    public function __construct() 
    { 
     $this->middleware('auth'); 
    } 

    /** 
    * Show the application dashboard. 
    * 
    * @return \Illuminate\Http\Response 
    */ 
    public function index() 
    { 
     $posts = Post::orderBy('id','DESC'); 
     return view('home', compact('posts')); 
    } 

    public function home() 
    { 
     $posts = Post::all(); 
     return view('index', compact('posts')); 
    } 
} 

어떻게 모든 사용자가 액세스 할 수있는보기의 경로를 만들 수 있습니까?

도움 주셔서 감사합니다. 당신이 경로

Route::get('/home', '[email protected]'); 

에서

class GuestController extends Controller 
{ 

    public function __construct() 
    { 

    } 


    public function home() 
    { 
     $posts = Post::all(); 
     return view('index', compact('posts')); 
    } 
} 

같은

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

유사 생성자에서 인증 미들웨어를 작성했기 때문에

답변

1

안녕하세요 모든 페이지에 액세스 할 수있는 별도의 컨트롤러를 작성하거나 다른 당신은 할 수 이런 짓을하다

$this->middleware('auth', ['except' => ['home']]); 

이 생성자 .IN 모든 홈 페이지에 액세스 할 수 다음과 같이

public function __construct() 
{ 
    $this->middleware('auth', ['except' => ['home']]); 
} 
+0

예! 고맙습니다! 나는 다른 컨트롤러를 만들 것입니다, 최선의 선택입니다! –

2

당신이 미들웨어 인증에서 인증 된 사용자를 허용 할 그 경로를 넣어 추가합니다 :

Route::group(['middleware' => ['auth']], function() { 
    //your routes  
}) 

그리고 모든 사용자가 액세스 할 수있는 경로의 경우 위의 그룹에 해당 경로를 지정하십시오.

+0

감사합니다. –