В моем приложении laravel у меня есть шаблон главного блэйда и дочерние страницы, которые расширяют этот шаблон основного блэйда.
Когда пользователь входит в систему, в шаблоне мастер-блейда я выбираю количество точек, которые есть у пользователя, сохраняет его в переменной Session и отображает его в виде, это работает:
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();
Теперь по какой-то причине даже после этого и перезагрузки страницы на нем все еще отображается предыдущее значение до того, как было выполнено обновление. Значение сеанса не обновляет новое значение, отображается только при выходе из системы и повторном входе в систему.
EDIT:
1. Я использую файл драйвер
Я зарегистрировал значение сеанса после обновления, и новое значение было сохранено, однако оно не обновляется в представлении.
Запрос на получение дополнительных баллов является запросом AJAX.