Laravel - Сессии хранятся неправильно / не сохраняются? - PullRequest
0 голосов
/ 11 ноября 2019

В моем Page A у меня есть:

session()->put('name','My Name');

и я проверяю его через:

return session()->get('name');

И он отображает My Name.

Сейчас намой Page B, я вернул сеанс:

return session()->get('name');

Однако теперь он отображает ноль или "". Что я здесь не так делаю?

PS: я использую Laravel 5.7

Обновление

Вот мой Page A, где я звоню session()->put:

if(Hash::check($password, $user->password)){
    session()->put('name', $user->name);
    return response()->json([
        'message' => 'Success! '.session()->get('name')
    ]);
}

Это отображает Success! My Name

Но когда я иду на Page B и имею:

$thename = session()->get('name');
return 'name = '.$thename;

Я получаю name =

ИБолее того, если я установлю name на Page B:

session()->put('name', 'ASDF');

После первой загрузки будет написано name = ASDF на Page B. Я удаляю строку: session()->put('name', 'ASDF'); и обновляю страницу, на ней все равно написано name = ASDF, что означает, что она там сохраняется.

Если я вернусь к Page A, снова установите name ивернитесь к Page B, он все еще говорит name = ASDF не name = My Name

1 Ответ

1 голос
/ 12 ноября 2019

Попробуйте сохранить сеанс вручную (через ->save()) после записи в сеанс.

Пример:

session()->put('name', $user->name);
session()->save();

Если это, похоже, решает проблему, вы где-то убиваете жизненный цикл запроса Laravel. Laravel использует промежуточное программное обеспечение для сохранения любых данных сеанса, поэтому все данные сеанса сохраняются в конце жизненного цикла запроса.

Используете ли вы где-нибудь dd?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...