Symfony 2 — храните переменную между действиями без сеанса

У меня есть действие контроллера (мы можем назвать это listPageAction). Это действие управляет моим основным видом (список элементов). Эти элементы могут быть отфильтрованы (это управляется этим же действием).

Я хочу сохранить значения фильтров между разными страницами (= Действия) и восстановить их, когда я вернусь в основной вид (listPageAction).

Я не могу использовать sessionпотому что приложение часто используется в нескольких вкладках браузера, поэтому сеанс может столкнуться.

Я не могу передать «вручную» элементы фильтров, потому что с других страниц я могу попасть на другие страницы и т. Д. (Это иерархический список страниц). Не оптимально передавать 3 переменные каждому маршруту, каждому действию.

Использовать глобальную переменную будет хорошо, но я не уверен, возможно ли это, как классическая глобальная переменная в PHP. Я прочитал несколько вещей с глобальной переменной Twig (которую я использую для визуализации). Это будет возможно для моей необходимости? Как ?

Другая возможность, которую я должен идентифицировать (но я не знаю, как я могу использовать это), будет использовать Listener, Я думаю, что я могу добавить свои значения фильтров в каждом ответе (kernel.response).
Но я не знаю, как передать слушателю фильтры и как восстановить их listPageAction когда я вернусь на главную страницу.

заранее спасибо

1

Решение

Вы можете вручную указать уникальный параметр между каждой страницей, ключ.

Таким образом, вы можете использовать сеанс, используйте клавишу, чтобы различать их между несколькими вкладками.

URL будет page/{key}/step1 а также page/{key}/step2
сеанс хранения объектов будет выглядеть как $session->get($key.".object");

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]