мы записали в КЕШ с таймером равным 5 минутам.
$expiresAt = Carbon::now()->addMinutes(5);
Cache::put('user-is-online-' . Auth::user()->id, true, $expiresAt);
- типо пользователь с id=1 сейчас онлайн.
В ```модели создали функцию:
public function isOnline()
{
return Cache::has('user-is-online-' . $this->id);
}
```Потом мы вывели это на странице в blade
@if($user->isOnline())
<span style="color:green">В сети</span>
@else
<span style="color:red">Не в сети</span>
@endif
Теперь вопрос, этот статус динамически обновится на странице в blade ? Нет же вроде, надо будет перезапустить страницу, чтобы он снова обратился и выташил уже новые данные из КЕШа.
А я хочу как-то динамично, как в Vue, чтобы при изменении переменной, выводилось сразу новое значение.
Тебе нужен компонент на vue, который периодически будет ходить на бэк, чтобы узнать статус юзера (онлайн или нет). По-другому, вроде никак. Потому что у тебя страницу laravel отдаёт, как я понял.
там, в ларавел есть что-то про вещание событий. но не уверен что это то что тебе нужно.
Обсуждают сегодня