2016-09-06 2 views
1

Использование Laravel 5.2Laravel данные сессии списываться после перенаправления на следующей странице

Im пытается сохранить данные сеанса в контроллере, а затем, если проверка удастся, я хочу, чтобы перенаправить пользователя на следующей странице. Когда я делаю Redirct :: to ('nextpage'), данные сеанса теряются на моей следующей странице и контроллере.

Это контроллер в получении значения формы пост от «domainSearch»

class domainSearch extends Controller 
{ 
    public function store(Request $request) 
    { 
     // validate the info, create rules for the inputs 
     $rules = array(
      'domainSearch' => 'required' // make sure the username field is not empty 
     ); 

     // run the validation rules on the inputs from the form 
     $validator = Validator::make(Input::all(), $rules); 

     // if the validator fails, redirect back to the form 
     if ($validator->fails()) { 
      return Redirect::to('/') 
       ->withErrors($validator) // send back all errors to the login form 
       ->withInput(Input::except('password')); // send back the input (not the password) so that we can repopulate the form 
     } 
      else { 
       // validation not successful, send back to form 
      $request->session()->put('domainname', $request->get('domainSearch')); 
       return Redirect::to('/domainlist'); 

      } 

     } 
    } 

Это контроллер им пытаются передать данные сессии, чтобы и забрать. Но он всегда остается нулевым.

class DomainList extends Controller 
    { 
     public function index(Request $request){ 

      var_dump($request->get('domainname')); 
      return view('domainlist'); 
     } 
    } 

Если я отправлю пользователя на следующую страницу с обратным видом ('view'); данные сеанса есть, но очищаются при использовании функции перенаправления.

Как переадресовать без потери данных сеанса и переменных?

+0

Вы используете '$ request-> session() -> put', а затем используете' $ request-> get'. Вероятно, вам нужно использовать '$ request-> session() -> get' – apokryfos

+0

Отлично .. :) Спасибо большое! – boomdrak

ответ

1

попробовать var_dump($request->session()->get('domainname')); в индексе.

BTW, вы также можете использовать глобальную функцию session() для хранения или получения данных сеанса.

Route::get('home', function() { 
    // Retrieve a piece of data from the session... 
    $value = session('key'); 

    // Store a piece of data in the session... 
    session(['key' => 'value']); 
}); 
+0

"$ value = session ('key')" Не работает в Laravel 5.4 при перенаправлении в другую функцию или контроллер –

0

Это происходит потому, что вы пытаетесь получить параметр GET вместо переменной SESSION. Попробуйте это:

class DomainList extends Controller 
{ 
    public function index(Request $request){ 

     var_dump($request->session()->get('domainname')); 
     return view('domainlist'); 
    } 
} 
Смежные вопросы