En PHP vanille, je peux définir une variable de session en utilisant le code ci-dessous;

$_SESSION['blog'] = array(
    "email" => $_POST['email'],
    "password" => $password,
    "firstname" => $row ['firstName'],
    "lastname" => $row ['lastName'],
    "id" => $row ['id']
);

Comment puis-je faire la même chose dans laravel. FYI je ne parle pas du nom de session par défaut, par exemple PHPSESSID ou laravel_session. J'ai plusieurs variables de session pour certaines parties de mon site telles que web, blog, 'carrières' et je les nomme comme le code ci-dessus et je peux les vérifier et y accéder individuellement. Ainsi, un utilisateur peut avoir les trois variables de session en même temps mais pour différentes sections du site.

1
moh_abk 28 déc. 2015 à 08:37

2 réponses

Meilleure réponse

Une façon de procéder:

$vars = [
    "email" => $email,
    "password" => $password,
    "firstname" => $row['firstName'],
    "lastname" => $row['lastName'],
    "id" => $row['id']
];

session()->put('blog', $vars);

Laravel Docs - Session

Mise à jour: pour vérifier l'existence d'une variable de session:

session()->has('blog'); // bool

Mise à jour: pour obtenir un élément contenu dans la variable de session "blog"

session('blog.id'); // using the dot notation
4
lagbox 29 déc. 2015 à 01:51
//Place the array in a variable
$session_array = array(
                "email" => $_POST['email'],
                "password" => $password,
                "firstname" => $row ['firstName'],
                "lastname" => $row ['lastName'],
                "id" => $row ['id']
                );


//Place that $session_array inside the session using \Session::put('key','value')
\Session::put('blog',$session_array);

// To access the session value
print_r(\Session::get('blog'));
0
Haseena P A 28 déc. 2015 à 07:25