2016-10-14 4 views
1

Laravel Application이 있는데 세션 변수와 관련된 이상한 점이 있습니다. 몇 가지 입력을 확인하는 컨트롤러에 메소드가 있고 어떤 조건에 따라 계속 진행할지 아니면 그냥 돌아 오는 지 (그리고 내 문제가있는 곳) 다시 결정합니다. return redirect()->back() 그래서 Json 인 변수를 보내려고합니다.세션 변수가 Laravel 5에서 전송되지 않았습니다.

$msg=json_encode([ 
    'status' => 'failed', 
    'field'=>'mail' 
]); 
return redirect()->back()->with('msg',$msg); 

그래서, 아주 잘 리디렉션, 그러나보기에 내가 가진 : 짧게 나는이 가지고

@if (Session::has('msg')) 
    //come stuffs 
@endif 

을하지만 그것은 msg 변수가 전달되지 좋아 보인다. Laravel 설명서에 따르면 하나가 redirect back을 사용할 때 변수는 accesible trough입니다 Session

+1

는 액세스 로그를보십시오. 그러면 다음 요청에 대해서만 데이터가 깜박이고 다시 리디렉션되는 페이지가 어딘지로 리디렉션되는 경우 해당 데이터가 손실됩니다. – user3158900

답변

0

또한이 문제는 Laravel 5.2를 사용하는 동안에도 발생합니다. 나는 그것이 버그인지 또는 고쳐 졌는지는 모르지만 redirect()->back()을 사용하지 않음으로써 주변을 둘러 보았습니다. 브라우저의 캐싱 메커니즘과 관련 있다고 생각합니다. 당신이 그 원인을 찾게된다면 나는 흥미가있을 것입니다.

+0

네, Laravel 5.2 –

0

난 당신이 내가 시험했을 때

나를 위해 HTTP Session

+0

예, 이미 만들었지 만 동일했습니다 –

+0

'if (isset ($ request-> session() -> get ('key'))) {}' – darham

+0

네,'$ request-> session() -> put ('key', 'value');'을 넣은 후에 썼습니다. 존재하지만 뷰에는 더 이상 존재하지 않습니다. –

1

그것의 '작업에서 문서를 읽어 리디렉션을 시작하기 전에 $request->session()->put('key', 'value');을 사용할 필요가 있다고 생각합니다. 아마도 세션에 데이터가 저장되어 있지 않을 수 있습니다. 세션이 작동하는지 여부를 확인하십시오. 내 테스트 출력

@if (Session::has('msg')) 
     {{ session('msg') }} 
    @endif 

enter image description here

+0

예, 웹 미들웨어를 사용하고 있기 때문에 문제가있는 것일 수 있습니다. –

관련 문제