Size: a a a

Laravel для начинающих

2021 March 12

AH

Andrey Helldar in Laravel для начинающих
Nurzzz
не, если я пришел со списка пользователей на страницу просмотра профиля, то ссылка назад в таком случае вернет на главную, а должна на список
@kallibr45, в принципе, да, Redirect::back() работает по хедеру REFERER и сессии, а если он пуст или не найден, редиректнет на главную, если не задан другой адрес: https://github.com/laravel/framework/blob/8.x/src/Illuminate/Routing/UrlGenerator.php#L148-L167
источник

k

kallibr44 in Laravel для начинающих
Andrey Helldar
@kallibr45, в принципе, да, Redirect::back() работает по хедеру REFERER и сессии, а если он пуст или не найден, редиректнет на главную, если не задан другой адрес: https://github.com/laravel/framework/blob/8.x/src/Illuminate/Routing/UrlGenerator.php#L148-L167
случайно удалил сообщение) Мне кажется тут всё же единственный выход это хранить историю переходов и к кнопке назад делать урл с флагом (типо redirect=последний урл) и при переходе назад последний элемент удалять
источник

AH

Andrey Helldar in Laravel для начинающих
kallibr44
случайно удалил сообщение) Мне кажется тут всё же единственный выход это хранить историю переходов и к кнопке назад делать урл с флагом (типо redirect=последний урл) и при переходе назад последний элемент удалять
Этот метод выглядит костыльно, он не всегда применим, но это надёжнее заголовков, да.
А если повесить поведение на фронт, т.е. при клике по фронту, то там и это делать ненадо - history.go(-1) на клик повесить и всё.
источник

k

kallibr44 in Laravel для начинающих
Andrey Helldar
Этот метод выглядит костыльно, он не всегда применим, но это надёжнее заголовков, да.
А если повесить поведение на фронт, т.е. при клике по фронту, то там и это делать ненадо - history.go(-1) на клик повесить и всё.
костыльно, не отрицаю, но более рационального решения пока не вижу. брать историю JSом нестабильно (сам натыкался на эти грабли) ибо бывает, что в историю может записаться промежуточный запрос (тот же редирект или пост), а чтобы "отсеивать" их, придется писать целый парсер истории, который будет лопатить на стороне юзера
источник

D

Dmitriy in Laravel для начинающих
Да ну о чем вы.
Тут же не нужно искать универсальное решение.
Есть две страницы с которой может быть выполнен переход.
Вот на этих двух страницах можно считать рефер и положить в сессию.
И после сохранения вернуться на исходную - нужную.
И все.
Написать хелпер/сервис который будет дёргаться из двух мест. Для сохранения и для возврата.
Это не костыль - когда это бизнес логика ;)
источник

AH

Andrey Helldar in Laravel для начинающих
kallibr44
костыльно, не отрицаю, но более рационального решения пока не вижу. брать историю JSом нестабильно (сам натыкался на эти грабли) ибо бывает, что в историю может записаться промежуточный запрос (тот же редирект или пост), а чтобы "отсеивать" их, придется писать целый парсер истории, который будет лопатить на стороне юзера
В идеале, делать нужно так, чтобы не пришлось вставлять такие костыли)
источник

k

kallibr44 in Laravel для начинающих
Dmitriy
Да ну о чем вы.
Тут же не нужно искать универсальное решение.
Есть две страницы с которой может быть выполнен переход.
Вот на этих двух страницах можно считать рефер и положить в сессию.
И после сохранения вернуться на исходную - нужную.
И все.
Написать хелпер/сервис который будет дёргаться из двух мест. Для сохранения и для возврата.
Это не костыль - когда это бизнес логика ;)
это абстрактно 2 страницы. Переход нужен именно по истории (как уже сказали, по принципу кнопки "назад" в браузере)
источник

D

Dmitriy in Laravel для начинающих
kallibr44
это абстрактно 2 страницы. Переход нужен именно по истории (как уже сказали, по принципу кнопки "назад" в браузере)
Кто сказал?
У автора вполне конкретный маршрут попадания на страницу редактирования.
Либо из главной либо из профиля.
И вернуться ему нужно именно туда откуда он начал свой путь.
Вполне определенная логика.

Или я все же не правильно понял задачу?
источник

k

kallibr44 in Laravel для начинающих
почему меня именно в половине четвёртого утра прибило зайти сюда...
источник

k

kallibr44 in Laravel для начинающих
Dmitriy
Кто сказал?
У автора вполне конкретный маршрут попадания на страницу редактирования.
Либо из главной либо из профиля.
И вернуться ему нужно именно туда откуда он начал свой путь.
Вполне определенная логика.

Или я все же не правильно понял задачу?
неправильно) я тоже по началу не так понял
источник

k

kallibr44 in Laravel для начинающих
щас покажу исходный вопрос
источник

k

kallibr44 in Laravel для начинающих
Переслано от Nurzzz
такой вопрос
источник

k

kallibr44 in Laravel для начинающих
Переслано от Nurzzz
у меня есть страница просмотра профиля, в которую можно попасть с главной страницы и со списка (другая страница)
источник

k

kallibr44 in Laravel для начинающих
Переслано от Nurzzz
в странице просмотра профиля есть кнопка редактирования
источник

k

kallibr44 in Laravel для начинающих
Переслано от Nurzzz
и тут такое дело
источник

k

kallibr44 in Laravel для начинающих
Переслано от Nurzzz
в обеих страницах (редактирования и просмотра есть кнопка назад (url()->back())
источник

k

kallibr44 in Laravel для начинающих
Переслано от Nurzzz
и когда я хочу вернуться назад например два раза, то есть с редактирования я должен вернуться на главную, либо на список
источник

k

kallibr44 in Laravel для начинающих
Переслано от Nurzzz
у меня он возвращает назад на прошлую, то есть dashboard->show->edit->show->edit...
источник

k

kallibr44 in Laravel для начинающих
т.е. возврат должен работать более чем на 1 уровень
источник

k

kallibr44 in Laravel для начинающих
так бы и Redirect::back()/Redirect::route() хватило
источник