lundi 24 juillet 2017

Session of logged user return undefined

I have custom login function in Laravel 5.4 which seems to work but not exactly. What I have in UserController.php is

public function loginSubmit() 
{
    $user = User::where('username', Input::get('username'))->first();
    if (!$user) {
        $validator->messages()->add('username', 'Invalid login or password.');
        return Redirect::to('/users/login')->withErrors($validator->errors())->withInput(Input::except(['captcha']));
    }

    if (!Hash::check(Input::get('password'), $user->password)) {
        $validator->messages()->add('username', 'Invalid login or password.');
        return Redirect::to('/users/login')->withErrors($validator->errors())->withInput(Input::except(['captcha']));
    }

    $user->last_login = \Carbon\Carbon::now();
    $user->save();
    Session::put('user', ['user_id' => $user->user_id]);
    //dd(Session::get('user', null));   

    return Redirect::to('/');
}

dd(Session::get('user', null)); return

array:1 [▼
  "user_id" => 1
]

Which means that user with ID=1 is logged and is in stored in session. In BaseController.php which sharing the user session I have this

public static function isLoggedIn() 
{
    $user = Session::get('user', null);
    if ($user !== null) {
        return true;
    } else {
        return false;
    }
}

But when I tried to show the username of the logged in user



I've got error

Undefined variable: user

This my Users model

namespace App;

use Illuminate\Database\Eloquent\Model;
use Eloquent; 
use DB;

use Illuminate\Auth\Authenticatable;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;

class User extends Eloquent implements AuthenticatableContract, CanResetPasswordContract 
{

    use Authenticatable, CanResetPassword;

    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'users';

    /**
     * The attributes excluded from the model's JSON form.
     *
     * @var array
     */
    protected $hidden = array('password');
    protected $primaryKey = 'user_id';
}

Any idea what is wrong with my session here?



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire