선결론!
session(['intended_url' => url()->current()]); // 가려고했던 URL 저장
웹 관리자로써 이용자들에게 많은 편의성을 제공하고 싶은데,
그중 하나가 이번에 해결되어 무척 기쁘다
우리 웹에는 로그인을 해야만 이용할 수 있는 메뉴들이 있다
예를들면,
1:1문의내역, 후기작성, 구매내역 등등
유저가 로그인을 하지 않은 상태에서 이러한 메뉴를 클릭하면
'로그인을 해주세요' 라는 알람과 함께 로그인 페이지로 이동한다
해당 페이지에서 로그인을 하면!
기존에 가려고했던 URL이 아닌 메인페이지로 이동하게끔 코드가 짜여 있다
이게 너무 답답했는데, 이번에 고치게 되었다
비밀은 세션이었다
// 기존코드
if (!session('user_id')) {
return redirect('/login')->with('return_alert','로그인 후 이용하세요');
}
//수정코드
session(['intended_url' => url()->current()]); // 가려고했던 URL 저장
if (session('user_id')) {
return redirect('/login')->with('return_alert','로그인 후 이용하세요');
}
이렇게 하니, 로그인페이지로 이동을 하면서도 세션에 값을 넣게 되었다
자, 테스트 해보자
로그인을 하지 않은상태에서 나의 리뷰 메뉴로 이동을 했더니, 로그인을 하라고 했다
로그인을 할때 세션을 찍어보기로 했다
intended_url에 내가 가려고 했던 url 이 찍혔다!
그럼 이제 컨트롤러에서 로그인 시, 수정만 해주면 된다
public function login() {
$goURL = session('intended_url');
~~~
return redirect($goURL ?? '/');
}
정말 간단한 문제였다!
728x90
반응형
'LARAVEL' 카테고리의 다른 글
[라라벨] @section('stlye')과 <style></style>의 차이 (0) | 2024.11.19 |
---|---|
[PHP] NULL 널 병합 연산자(??, ||, !) (0) | 2024.11.14 |
[PHP] isset() 과 empty() 의 차이 (0) | 2024.10.24 |
[블레이드] 데이터 출력시 HTML 태그 나올 때 해결법 (0) | 2024.09.21 |
[라라벨] 터미널에서 캐시 지우는 방법 (0) | 2024.09.15 |