В моем приложении laravel у меня есть шаблон главного лезвия и дочерние страницы, которые расширяют этот шаблон главного лезвия.
Когда пользователь входит в систему, в главном шаблоне лезвия я извлекаю количество точек, которые имеет пользователь, сохраняю его в переменной сеанса и отображаю в представлении, это работает:
LoginController.php
protected function authenticated(Request $request, $user)
{
$userPoints = UserPoint::where("user_id", $user->id)->first();
()->put("availablePoints", $userPoints->points);
session()->save();
}
master.blade.php:
<li class = "nav-item">
Hi, You have <span id = "userPoints">{{ session()->get("availablePoints") }}</span>points
</li>
Теперь мое представление points.blade.php расширяет представление master.blade.php, у меня есть кнопка в этом представлении, которая позволяет пользователю получать новые точки, в моем контроллере я добавляю то, что у пользователя уже есть, и пытаюсь обновить сеанс к новому значению:
$userPoints = Point::where("user_id", Auth::user()->id)->first();
$userPoints->points = ($userPoints->points + 50);
$userPoints->expires_at = new Carbon('first day of next month');
$userPoints->save();
session()->put("availablePoints", $userPoints->points);
session()->save();
Теперь по какой-то причине, даже после того, как вы сделали это и перезагрузили страницу, она по-прежнему отображает предыдущее значение до того, как было выполнено обновление. Значение сеанса не обновляется, новое значение отображается только при выходе из системы и повторном входе в систему.
Обновлено: 1. Я использую драйвер файл
Я зарегистрировал значение сеанса после обновления, и новое значение было сохранено, однако оно не обновляется в представлении.
Запрос на получение дополнительных баллов - это запрос AJAX.
Раньше просто занимался session(["" => ""]);, не получилось
Поместите APP_DEBUG=true в ваш файл .env. Сохранение данных сеанса происходит только в случае успешного завершения действия контроллера.
APP_DEBUG уже имеет значение TRUE
Какой драйвер сеанса вы используете?
Файловый драйвер.
session("availablePoints", $userPoints->points) пробовали?
Еще одно, что нужно проверить. Использует ли ваш маршрут промежуточное ПО?






Попробуй прекратить заниматься
session()->save();.