РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
193 of 274 menu

Атрибут Session

Атрибут #[Session] используется для пометки публичного свойства компонента Livewire, значение которого должно автоматически сохраняться в сессии и восстанавливаться при следующем запросе. Это позволяет сохранять состояние компонента даже после перезагрузки страницы или перехода на другие страницы сайта. Атрибут не принимает параметров.

Синтаксис

Атрибут указывается над публичным свойством компонента:

<?php namespace AppLivewire; use LivewireComponent; use LivewireAttributesSession; class UserSettings extends Component { #[Session] public $theme = 'light'; public function render() { return view('livewire.user-settings'); } } ?>

Пример

Давайте создадим компонент счётчика, значение которого сохраняется в сессии:

<?php namespace AppLivewire; use LivewireComponent; use LivewireAttributesSession; class Counter extends Component { #[Session] public $count = 0; public function increment() { $this->count++; } public function resetCount() { $this->count = 0; } public function render() { return view('livewire.counter'); } } ?>
<div> <p>Count: {{ $count }}</p> <button wire:click="increment">Increment</button> <button wire:click="resetCount">Reset</button> </div>

После обновления страницы значение $count сохранится благодаря атрибуту #[Session].

Пример

Атрибут #[Session] можно использовать для хранения выбранных пользователем настроек, например, языка интерфейса:

<?php namespace AppLivewire; use LivewireComponent; use LivewireAttributesSession; class Settings extends Component { #[Session] public $language = 'ru'; public $availableLanguages = ['ru', 'en', 'fr', 'de']; public function setLanguage($lang) { if (in_array($lang, $this->availableLanguages)) { $this->language = $lang; session()->put('app_locale', $lang); app()->setLocale($lang); } } public function render() { return view('livewire.settings'); } } ?>
<div> <p>Current language: {{ $language }}</p> @foreach ($availableLanguages as $lang) <button wire:click="setLanguage('{{ $lang }}')"> {{ strtoupper($lang) }} </button> @endforeach </div>

Выбранный язык будет сохранен в сессии и восстановлен при следующем посещении страницы.

Смотрите также

  • атрибут Url,
    который сохраняет свойство в URL-адресе
  • атрибут Computed,
    который создает вычисляемое свойство компонента
  • атрибут Locked,
    который делает свойство доступным только для чтения
  • атрибут Reactive,
    который делает свойство реактивным при изменении
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить