2016-04-25 2 views
0

Я пытаюсь сохранить после входа пользователя в систему, значения в базе данных сеанса. Я пытаюсь использовать этот код для проверки входа и ввода сеанса.Laravel 5. Как сохранить и вернуть значения сеанса

protected function login(Request $Request){ 
     $var = $Request->session()->all(); 
     return dd($var); 

     $user = Model\Account::where('username',$Request['username'])->first(); 
     if(isset($user)){ 
      if (Hash::check($Request['password'], $user->password)) 
       { 
        $Request->Session()->put('usuarios',$user); 
        return view('aluno/showActivities'); 
       } 
      else{ 
       return dd('Invalid password.'); 
      } 
     } 
     else{ 
      return dd('User doesn't exists.'); 
     } 
    } 

OBS: Я использую контроллер для входа в систему. Этот маршрут определен как код вниз.

Route::post('/new/login',['as' => 'authRegister', 'uses' => '[email protected]',function() { 
 
    return Response::json(['Fail' => true], 404); 
 
}]);

После проверки входа в систему, то Laravel спасал эту строку в базе данных.

Image of database line

Он не спасает user_id. Как я могу сохранить эту информацию? Другая проблема заключается в том, как я могу вернуть информацию о сеансе? В методе get я попытался использовать $ Request-> session() -> get ('usuarios'), но возвратил null.

var_dump ($ пользователь) =

yes. See the result. 
 

 
object(App\Model\Account)#198 (23) { ["table":protected]=> string(7) "account" ["connection":protected]=> string(5) "mysql" ["fillable":protected]=> array(3) { [0]=> string(5) "email" [1]=> string(8) "password" [2]=> string(8) "username" } ["primaryKey":protected]=> string(2) "id" ["perPage":protected]=> int(15) ["incrementing"]=> bool(true) ["timestamps"]=> bool(true) ["attributes":protected]=> array(8) { ["id"]=> int(4) ["email"]=> string(20) "[email protected]" ["password"]=> string(60) "$2y$10$yFZDFHH2tr6OeoRtEShSmOsX99TQ7e.o5Tb2mJ7sA4tNZEXr4s3tG" ["username"]=> string(10) "thiagothgb" ["deleted_at"]=> NULL ["created_at"]=> string(19) "2016-04-23 17:20:10" ["updated_at"]=> string(19) "2016-04-23 17:20:10" ["user_id"]=> int(6) } ["original":protected]=> array(8) { ["id"]=> int(4) ["email"]=> string(20) "[email protected]" ["password"]=> string(60) "$2y$10$yFZDFHH2tr6OeoRtEShSmOsX99TQ7e.o5Tb2mJ7sA4tNZEXr4s3tG" ["username"]=> string(10) "thiagothgb" ["deleted_at"]=> NULL ["created_at"]=> string(19) "2016-04-23 17:20:10" ["updated_at"]=> string(19) "2016-04-23 17:20:10" ["user_id"]=> int(6) } ["relations":protected]=> array(0) { } ["hidden":protected]=> array(0) { } ["visible":protected]=> array(0) { } ["appends":protected]=> array(0) { } ["guarded":protected]=> array(1) { [0]=> string(1) "*" } ["dates":protected]=> array(0) { } ["dateFormat":protected]=> NULL ["casts":protected]=> array(0) { } ["touches":protected]=> array(0) { } ["observables":protected]=> array(0) { } ["with":protected]=> array(0) { } ["morphClass":protected]=> NULL ["exists"]=> bool(true) ["wasRecentlyCreated"]=> bool(false) }

+0

Вы можете сбросить свою переменную '$ user' и показать мне массив результатов? добавьте результат дампа в вопрос – Qazi

+0

да. См. Результат. –

+0

Прошу, покажи мне результаты – Qazi

ответ

0

попробовать это, и проверьте, получаете ли вы значение сессии или нет.

$user = Model\Account::where('username',$Request['username'])->first(); 
$Request->Session()->put('usuarios',$user->toArray()); 
echo "<pre>"; 
print_r($Request->Session()->get('usuarios')); 
echo "</pre>"; 
die(); 

показать мне ваши результаты

+0

array:8 [▼ "id" => 4 "email" => "[email protected]" "password" => "$2y$10$yFZDFHH2tr6OeoRtEShSmOsX99TQ7e.o5Tb2mJ7sA4tNZEXr4s3tG" "username" => "thiagothgb" "deleted_at" => null "created_at" => "2016-04-23 17:20:10" "updated_at" => "2016-04-23 17:20:10" "user_id" => 6 ]

+0

приятно, как я могу взять идентификатор сеанса хранилища сеансов массива или поместить идентификатор пользователя в таблицу сеанса? –

+0

магазин {# 172 ▼ #id: "2ed46602c6676481446c3eb5d800c49b8f623c07" // этот лагерь #name: "laravel_session" #attributes: Массив: 4 [▶] #bags: [] #metaBag: MetadataBag {# 173} ▶ #bagData: array: 1 [▶] # handler: DatabaseSessionHandler {# 171 ▶} #started: true } –

0

Теперь я могу забрать информацию о сессии. Я пытаюсь выполнить аутентификацию сеанса, используя этот маршрут.

Route::get('/new/login',['as' => 'authRegister', 'uses' => '[email protected]',function() { 
 
    return Response::json(['fail' => true], 404); 
 
}]);

На контроллере, я объявлена.

protected function VerifieldSession(Request $Request){ 
 
     if ($Request->session()){ 
 
      //$sessao = $Request->session()->get('usuarios'); 
 
      $sessao = $Request->session(); 
 
      return dd($sessao); 
 
      
 
     } 
 
     else{ 
 
      return dd('not have session'); 
 
     } 
 
    }

Это "если ($ request-> сессия())", будет вернуться, если пользователь имеет сеанс для каждого заезжего или мне нужен другой "если"?

0

сейчас я понимаю. Я modifield контроллер по:

protected function VerificaSessao(Request $Request){ 
 
     if ($Request->session()){ 
 
      
 
      if ($Request->session()->has('usuarios')){ 
 
       
 
       return view('aluno/showActivities'); 
 
      } 
 
      else{ 
 
       return dd('not have session'); 
 
      } 
 
      
 
     } 
 
     else{ 
 
      return dd('not have session'); 
 
     } 
 
    }

И Асесс тест на другой браузер, и я посмотрел на результат. Он не перенаправлен для просмотра «Aluno/showActivities». Это работает. Спасибо за помощь. Хорошо провести ночь

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