Laravel 4.2 Redirect::to с GET-параметрами
Есть ли возможность перенаправить на URL с GET-параметрами, используя Redirect::to()
в Laravel 4.2?
Я пытаюсь перенаправить пользователей после входа на запрашиваемую страницу, когда они не вошли в систему.
Если вы не вошли в систему и заходите на авторизованную страницу, я сохраняю полный запрошенный URL в сеансе (этот URL может быть чем-то вроде https://page.com/settings
или же https://page.com/post/23
или же https://page.com/post/23?show=full
, Много вариантов).
Когда вы войдете в систему и у вас будет сохранен URL в вашем сеансе, я перенаправлю вас Redirect::to(https://page.com/post/23)
В первых двух случаях проблем нет, но когда я использую Redirect::to(https://page.com/post/23?show=full)
GET параметры игнорируются.
Есть ли возможность перенаправить на URL с включенными GET-параметрами?
4 ответа
Там проблема с вашим приложением. Если я вас правильно понимаю, параметры вашего запроса (такие как: ?param=true¶m2=1
) нет в вашем URL после перенаправления.
Рассмотрим следующий пример:
Route::get('/test', function () {
return Redirect::to('http://localhost:8000/test2?with=params');
});
Route::get('/test2', function () {
echo '1';
});
Когда я пытаюсь получить доступ к: localhost:8000/test
Я перенаправлен на: http://localhost:8000/test2?with=params
Что является ожидаемым поведением. Можете ли вы опубликовать пример, где вы делаете это перенаправление?
Также я бы предложил использовать: Redirect::med(), который делает именно то, что вы хотите.
Попробуй это:
Вы можете передать его как https://page.com/post/23/showFull
И вы можете получить это следующим образом:
Request::segment(3);
В Laravel по умолчанию эта функция доступна, если вы используете промежуточное программное обеспечение для аутентификации, как указано ниже:
Route::group(array('before' => 'auth'), function(){
//authorized routes
});
пример
Если пользователь без входа в систему, получает доступ к URL "example.com/User?abc=123", который является авторизованным маршрутом.
Затем пользователь будет автоматически перенаправлен на страницу входа.
После успешного входа в систему пользователь будет автоматически перенаправлен на первый запрошенный URL ("example.com/User?abc=123")
Почему бы не Redirect::back()? Фильтр авторизации должен иметь возможность перенаправлять все неавторизованные запросы на страницу входа в систему, а затем перенаправлять пользователя назад на предыдущую страницу.
Редактировать: фильтр, а не промежуточное ПО.