Сессии должны быть кратковременными. Если вы хотите что-то более постоянное, вы можете использовать какую-то таблицу долгосрочных пользовательских настроек.
Создать таблицу user_settings
:
id (PK), user_id(FK users table), settings(BLOB?), created_at, updated_at
Добавить модель:
class UserSetting extends Model {
public function user() {
return $this->belongsTo(User::class);
}
}
Вы также можете связать пользователя с этим через:
class User extends Model {
//...
public function settings() {
$this->hasMany(UserSetting::class);
}
}
Затем вы можете получить все сеансы пользователя через:
User::find($u)->settings();
Когда пользователь входит в систему регулярно или автоматически через токен запоминания, происходит событие Login
.
Вы можете прослушать это у поставщика услуг по организации мероприятий:
\Event::listen(\Illuminate\Auth\Events\Login::class, function ($event) {
// Here you can load the last settings in the session if you want e.g.
session(['current_settings' => $event->user->settings()->latest()->value('id') ]);
// or you can just make a new entry:
$settings = new UserSettings();
$event->user->settings()->save($settings);
session(['current_settings' => $settings->id ]);
});
Обратите внимание, что вам придется вручную сохранять вещи, которые нужно сохранить, а не просто помещать их в сеанс.