2016-10-05 5 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 value –

+0

Невозможно удалить переменную сеанса с другой страницы. Или используйте session :: flash() - он сохраняет переменную только для одного запроса. – zacurry

+0

Как это сделать –