2016-04-30 4 views
1

Я вхожу в систему, а затем сохраняю имя пользователя в сеансе, а затем обновляю эту страницу, но сеанс не сохраняет значение.Как использовать сессию в контроллере laravel 5.2

Это мой код:

class WelcomeCtrl extends Controller 
{ 
    public function gotoWelcome() 
    { 
     return view('welcome')->with('user',Session::get('user'));//nothing in session 
    } 

     public function dologin(){ 
       $username = $_POST['username']; 
       $password = $_POST['password']; 
       $result = ""; 
       if($username && $password){ 
        $result = User::getUser($username, $password); 
        if($result){ 
         Session::set('user',$result); 
         return response()->json([true, Session::get('user')]);//I get value expected, this is ok. 
        } 
       } 
       return response()->json([false, Session::get('user')]);  
      } 
    } 

ответ

2

Вы добавили группу промежуточного слоя «веб» на маршрутах. В 5.1, это было по умолчанию для всех маршрутов и было использовано для управления сеансами и проверки CSRF т.д.

+0

О, я думаю, что я не добавил промежуточное ПО. – chipcoiga

+0

, если это работает, PLS upvote – shalini

+0

Имейте в виду, что последние версии Laravel 5.2 теперь включают в себя промежуточное ПО 'web' по умолчанию в поставщике услуг маршрутизации, поэтому нет необходимости делать это, если вы используете одну из новых версий, например 5.2.30. –

0

Если использование хочет использовать Session :: убедитесь, что вы добавить фасад сессии по:

use Session; 

Вместо это вы можете использовать помощник сеанса. Таким образом, вы можете использовать следующие коды:

session()->user()->email; 
session()->get('user'); 
session()->flash('message', 'Hi there.'); 

Для более см helpers.

0
Session::put('key','value');//to put the session value 
Session::get('key');//to get the session value 

Session::has('key');//to check the session variable exist or not 
0

Помните одно. Когда вы отправляете форму с использованием ajax в Laravel 5.2, будет ошибка CsrfTokenMismatch. Чтобы этого избежать, добавьте свое имя маршрута, которое принимает значения формы с помощью ajax в вашем приложении/Http/Middleware/VerifyCsrfToken.php в $ except array. Затем этот маршрут примет значения формы с помощью ajax-запроса.

+1

вы также можете отправить токен csrf через ajax-запрос @chipcoiga – BCPNAYAK

Смежные вопросы