2015-11-24 4 views
0

Итак, в одном из моих представлений я генерирую команду redirect() -> back() -> with(), чтобы отправить пользователя на предыдущую страницу ,laravel redirect-> back() не дает мне действительный url

<a href="{{ redirect()->back()->with('redirectRewards', true)}}"><button>Go Back</button></a> 

проблема, с которой я сталкиваюсь, заключается в том, что она не дает мне URL. Это то, что я получаю.

http://localhost:8888/pp/public/HTTP/1.0%20302%20FoundCache-Control:%20no-cacheDate:%20%20%20%20%20%20%20%20 
%20%20Tue,%2024%20Nov%202015%2022:23:12%20GMTLocation:%20%20%20%20%20%20http://localhost:8888/pp/public/task/matching/response/house%3C!DOCTYPE%20html%3E%3Chtml%3E%20%20%20%20%3Chead%3E%20%20%20%20%20%20%20%20%3Cmeta%20charset=%22UTF-8%22%20/%3E%20%20%20%20%20%20%20%20%3Cmeta%20http-equiv=%22refresh%22%20content=%221;url=http://localhost:8888/pp/public/task/matching/response/house%22%20/%3 
E%20%20%20%20%20%20%20%20%3Ctitle%3ERedirecting%20to%20http://localhost:8888/pp/public/task/matching/response/house%3C/title%3E%20%20%20%20%3C/head%3E%20%20%20%20%3Cbody%3E%20%20%20%20%20%20%20%20Redirecting%20to%20%3Ca%20href=%22http://localhost:8888/pp/public/task/matching/response/house%22%3Ehttp://localhost:8888/pp/public/task/matching/response/house%3C/a%3E.%20%20%20%20%3C/body%3E%3C/html%3E 

Так что я думаю, что использую функцию неправильно, но как я могу просто получить обратный URL-адрес для работы?

ответ

5

Возможно, вы хотите использовать URL::previous().

<a href="{{ URL::previous() }}">Go Back</a> 

redirect()->back() Метод фактически вызывает метод URL::previous() для создания RedirectResponse.

+0

Могу ли я отправить сеанс с этим? Мне нужен мой диспетчер, чтобы заметить, что это не обычный бизнес, и что он тоже появился. Есть ли способ? –

+0

Нет, не с этим методом. Я не уверен, есть ли способ сделать это. Если кто-то еще не придумает другой метод, мое предложение будет заключаться в том, чтобы использовать параметры запроса. –

+0

Собственно. Мне удалось немного переключить скрипт, чтобы он работал! Благодаря! –

0

Фактически redirect() не может быть использован после печати любого выхода, он не будет работать. Если вы хотите, чтобы ссылка вернулась. Просто используйте простой скрипт JS, как описано here.

+0

Дело в том, что мне не нужно было возвращаться. Скорее я использовал back() -> с сеансом, чтобы затем перенаправить на нужное место в моем контроллере. потому что предыдущая страница на самом деле для чего-то еще, но связана –

2

redirect() действительно создает URL-адрес. Он возвращает экземпляр Illuminate\Routing\Redirector. Он предназначен для использования в рамках метода контроллера или закрытия маршрута.

Вы хотите route()helper method

$url = route('routeName');

+0

Ну, я проблема с этим в том, что мне нужно вернуться на предыдущую страницу. Многие страницы могут привести к этой странице, и ей необходимо вернуться к этому контроллеру. Есть ли способ сделать это? –

0

Попробуйте использовать

{{ Request::referrer() }} 

вы можете достичь того же, используя только PHP (но я предпочитаю синтаксис Laravel, так как она является более читаемой и чистой:

$_SERVER["HTTP_REFERER"] 
Смежные вопросы