2017-12-27 45 views
-1

나는 Laravel 5.5에서 그렇게 할 수있는 방법이 없다고 생각합니다.로그인 후 Laravel 5.5 특정 경로로 리디렉션

나는 사용자가 인증을해야한다면 뭔가해야하며 사용자가 인증되지 않으면 사용자를 로그인 페이지로 보내야하고 사용자가 다른 페이지로 리디렉션 한 후에 로그인해야합니다. 로그인 페이지에 다른 페이지 URL을 매개 변수로 전달하려면 어떻게해야합니까? 그 버튼에 대한

내 블레이드 코드는 다음과 같습니다 뭔가를 놓치고 있습니까

@if(empty($_user)) 
<a href="{{ route('login') }}" class="button button-reply icon-button reply-icon" title="Post a reply">Post Reply</a> 
@else 
<a href="#reply-post" class="button button-reply icon-button reply-icon" title="Post a reply">Post Reply</a> 
@endif 

? 그런 기본적인 것을 할 수있는 방법이 있습니까? 최종 페이지가 인증 미들웨어로 보호되는 경우 Laravel이이 리디렉션을 수행하지만이 경우 페이지가 해당 미들웨어 뒤에 있지 않다는 것을 알고 있습니다.

답변

0

마지막 URL을 로그인 페이지로 전달한 다음이를 로그인 양식에 숨겨진 입력 내용으로 포함 시켜서 해결하여 결국 LoginController의 redirectPath() 함수에서 사용하게되었습니다. 로그인 폼에서 다음

<a href="{{ route('login') }}?redirectTo={{ urlencode(route('topic', $topic->id)) }}" class="button button-reply icon-button reply-icon" title="Post a reply">Post Reply</a> 

:

@if(!empty(app('request')->input('redirectTo'))) 
<input type="hidden" name="redirectTo" value="{{ urldecode(app('request')->input('redirectTo')) }}" /> 
@endif 

그리고 redirectPath() 기능에

페이지 블레이드의 코드가 URL에 로그인 페이지로 redirectTo를 전달하는 것입니다 :

/** 
* If there's a defined redirectTo, use it 
*/ 
if (!empty(request()->input('redirectTo'))) { 
    $this->redirectTo = request()->input('redirectTo'); 
} 

이것은 잘 작동하지만 Laravel이 이것에 대한 내장 솔루션이므로 누군가가 내장 솔루션을 알고 있거나 더 나은 해결책을 알고 있다면 여기에서 공유하십시오!