Как создать переменную в Yii2, работающую и в view и в layout?
Есть количество товаров в корзине.
Это количество отображается в шапке (layout), в меню для мобилки (layout) и на странице товаров, появляется кнопка прижатая к низу экрана (view).
И в каждом случае идет отдельный вызов в базу данных, для поиска количества. Как создать какую-то глобальную переменную с одной вылазкой в базу, чтобы можно было ее вызвать во всех трех местах?
Ответы (1 шт):
В общем всё просто:
Вариант 1 - сделать один ajax запрос на серевер и далее с помощью Javascript нарисовать данные там, где необходимо. Хоть в сотне мест.
Вариант 2 - суть сводится к сохранению знаний о корзине куда-либо и при следующем обращении к методу - брать данные оттуда. Где эти данные будут храниться - вариантов тоже много:
- Куки/Сессия
- Кэш (например файловый кэш)
- Можно в модели. Сделать свойство
$cartDataили$cartCountили что вы ещё хотите. Сделать метод, который смотрит, если$cardData === nullто делаем запрос в БД, а в ином случае - брать данные из свойства.
Главное не забывать очистить невалидные данные в какой-либо необходимый момент
