У меня есть администратор сонаты для объекта с множеством элементов, который, естественно, охватывает несколько страниц в представлении списка.Symfony2 - Sonata Admin - Изменить/Создать действие «вернуться к списку»
Что бы я хотел сделать, так это после редактирования или создания нового объекта перенаправить пользователя на соответствующую страницу, на которой отображается отредактированный объект (в отличие от возврата к первой странице списка, которая является поведение по умолчанию администратора сонаты). Поведение dafult нормально, когда есть только 1 или 2 страницы, но когда у вас десятки или даже сотни страниц, переход на правильную страницу становится довольно утомительным.
Итак, мой вопрос в том, как правильно это сделать?
Я думаю, что это связано с настройкой контроллера администратора для объекта, но я не уверен, что такое правильные точки расширения. А также, как использовать paginator для получения правильной страницы для перехода назад.
Другим потенциальным взломом было бы захват состояния параметров запроса при навигации из вида списка в редактирование, а затем возврат пользователя к тому же URL-адресу. Это не сработает правильно для создания новых элементов.
Также существует вопрос о состоянии фильтров при навигации по списку (если пользователь отсортировал и/или отфильтровал список перед переходом на страницу редактирования).
Итак, вы используете сеанс для хранения последней страницы, на которой был пользователь, а затем перенаправляете на URL-адрес, соответствующий этой странице? Я читаю это правильно? Если это так - проблема с этим, так это, если пользователь открывает другую вкладку (в пределах одного сеанса) и просматривает ее. Я думаю, что решение идет по правильному пути, но ему нужна дополнительная защита (возможно, в виде уникального идентификатора для действия). Я бы рекомендовал добавить повествование к вашему ответу, и я соглашусь с ним. –
Вы правы, это именно то, что я делаю. И вы также правы с странным поведением, если пользователь просматривает несколько вкладок. Извините, у меня нет времени найти подходящее рабочее решение, но я думаю, это возможно. Мой ответ - это только путь. Должны быть и другие. – wewereweb