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&param2=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()? Фильтр авторизации должен иметь возможность перенаправлять все неавторизованные запросы на страницу входа в систему, а затем перенаправлять пользователя назад на предыдущую страницу.

Редактировать: фильтр, а не промежуточное ПО.

Другие вопросы по тегам