2016-10-05 9 views
1

セッションに問題があります。私は私のセッションを破壊しない。私のセッションでは、current_urlの価値を入れました。予約ページから私が登録した場合、私は登録後にページをリダイレクトします。しかし、ホームページから登録すると、予約ページにリダイレクトされます。私のコントローラはセッションがlaravelで破損しない

public function helpPeopleStore (Request $request) { 
     if (Auth::check()) { 
      $current_url = Session::get('current_url'); 
      $user = Auth::user(); 
      $industry = $request->input('industry'); 
      if (empty($industry)) { 
       Session::flash('error', 'Industry is needed'); 
       return redirect()->back()->withInput(); 
      } 
      $degrees = $request->input('degrees'); 
      if (empty($degrees)) { 
       Session::flash('error', 'Degree is needed'); 
       return redirect()->back()->withInput(); 
      } 
      $area_of_experiences = $request->input('area_of_experiences'); 
      if (empty($area_of_experiences)) { 
       Session::flash('error', 'area of experiences is needed'); 
       return redirect()->back()->withInput(); 
      } 

      $user_industry = UserIndustry::where('user_id', $user->id)->first(); 
      if (!empty($user_industry)) { 
       $user_industry = $user_industry; 
      } else { 
       $user_industry = new UserIndustry(); 
      } 

      $user_degrees_exists = UserDegree::where('user_id', $user->id)->get(); 
      if (!empty($user_degrees_exists)) { 
       foreach ($user_degrees_exists as $user_degree_exist) { 
        UserDegree::destroy($user_degree_exist->id); 
       } 
      } 

      $user_area_of_experiences_exists = UserAreaOfExperience::where('user_id', $user->id)->get(); 
      if (!empty($user_area_of_experiences_exists)) { 
       foreach ($user_area_of_experiences_exists as $user_area_of_experience_exist) { 
        UserAreaOfExperience::destroy($user_area_of_experience_exist->id); 
       } 
      } 

      $user_industry->user_id = $user->id; 
      $user_industry->industry_id = $industry; 
      $user_industry->save(); 

      if (!empty($degrees)) { 
       foreach ($degrees as $degree) { 
        $user_degrees = new UserDegree(); 
        $user_degrees->user_id = $user->id; 
        $user_degrees->degree_id = $degree; 
        $user_degrees->save(); 
       } 
      } 

      if (!empty($area_of_experiences)) { 
       foreach ($area_of_experiences as $area_of_experience) { 
        $user_area_of_experiences = new UserAreaOfExperience(); 
        $user_area_of_experiences->user_id = $user->id; 
        $user_area_of_experiences->area_of_experience_id = $area_of_experience; 
        $user_area_of_experiences->save(); 
       } 
      } 
      return redirect($current_url); 
      Session::flush(); 
     } else { 
      return redirect('user/registration'); 
     } 

     Session::flush(); 
    } 

してください男は、私はあなたがフラッシュを呼び出す前に、機能を戻ってきているので、この

答えて

0


への答えは

public function helpPeopleStore (Request $request) { 
     if (Auth::check()) { 
      $current_url = Session::get('current_url'); 
      $user = Auth::user(); 
      $industry = $request->input('industry'); 
      if (empty($industry)) { 
       Session::flash('error', 'Industry is needed'); 
       return redirect()->back()->withInput(); 
      } 
      $degrees = $request->input('degrees'); 
      if (empty($degrees)) { 
       Session::flash('error', 'Degree is needed'); 
       return redirect()->back()->withInput(); 
      } 
      $area_of_experiences = $request->input('area_of_experiences'); 
      if (empty($area_of_experiences)) { 
       Session::flash('error', 'area of experiences is needed'); 
       return redirect()->back()->withInput(); 
      } 

      $user_industry = UserIndustry::where('user_id', $user->id)->first(); 
      if (!empty($user_industry)) { 
       $user_industry = $user_industry; 
      } else { 
       $user_industry = new UserIndustry(); 
      } 

      $user_degrees_exists = UserDegree::where('user_id', $user->id)->get(); 
      if (!empty($user_degrees_exists)) { 
       foreach ($user_degrees_exists as $user_degree_exist) { 
        UserDegree::destroy($user_degree_exist->id); 
       } 
      } 

      $user_area_of_experiences_exists = UserAreaOfExperience::where('user_id', $user->id)->get(); 
      if (!empty($user_area_of_experiences_exists)) { 
       foreach ($user_area_of_experiences_exists as $user_area_of_experience_exist) { 
        UserAreaOfExperience::destroy($user_area_of_experience_exist->id); 
       } 
      } 

      $user_industry->user_id = $user->id; 
      $user_industry->industry_id = $industry; 
      $user_industry->save(); 

      if (!empty($degrees)) { 
       foreach ($degrees as $degree) { 
        $user_degrees = new UserDegree(); 
        $user_degrees->user_id = $user->id; 
        $user_degrees->degree_id = $degree; 
        $user_degrees->save(); 
       } 
      } 

      if (!empty($area_of_experiences)) { 
       foreach ($area_of_experiences as $area_of_experience) { 
        $user_area_of_experiences = new UserAreaOfExperience(); 
        $user_area_of_experiences->user_id = $user->id; 
        $user_area_of_experiences->area_of_experience_id = $area_of_experience; 
        $user_area_of_experiences->save(); 
       } 
      } 
      return redirect($current_url); 
      Session::flush(); 
     } else { 
      return redirect('user/registration'); 
     } 

     Session::flush(); 
    } 
0

あなたのセッションの値が破壊取得されていない解決を支援しています。 変更
return redirect($current_url); Session::flush();
Session::flush(); return redirect($current_url)

+0

になります私はこれを行うならば、私は他のページから登録しても、任意の$を得るいけない場合、私は、ページにリダイレクトカントcurrent_urlの値 –

+0

セッション変数を他のページから削除することはできません。または、session :: flash()を使用します。これは、1つの要求に対してのみ変数を格納します。 – zacurry

+0

これを行うにはどうすればいいですか? –

関連する問題