2016-10-05 107 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() - 它仅为一个请求存储变量。 – zacurry

+0

我该怎么做 –