2016-10-05 2 views
1

Ich habe ein Problem in meiner Sitzung. Ich zerstöre meine Sitzung nicht. In meiner Sitzung setze ich den Wert meiner current_url so, dass, wenn ich mich von der Buchungsseite aus registriere, ICH ZURÜCK ZUR SEITE NACH DER REGISTRIERUNG REDIRECT. Aber wenn ich mich von der Homepage aus anmelde, werde ich auch zurück zur Buchungsseite weitergeleitet. Mein Controller istSitzung nicht in Laravel zerstören

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(); 
    } 

Bitte Jungs helfen mir diese Lösung

Antwort

0

Die Antwort wird

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

Ihre Sitzung Werte nicht immer zerstört, weil Sie die Funktion zurückkehren, bevor Flush aufrufen. ändert
return redirect($current_url); Session::flush();
zu
Session::flush(); return redirect($current_url)

+0

, wenn ich dies tun würde, dann kann ich nicht auf der Seite umleiten, wenn ich von einer anderen Seite zu registrieren und auch jeden $ dont get current_url Wert –

+0

Ist es nicht möglich, die Sitzungsvariable von der anderen Seite zu löschen. Oder verwenden Sie session :: flash() - es speichert die Variable für nur eine Anfrage. – zacurry

+0

Wie kann ich das tun –

Verwandte Themen