Класс RedirectResponse
Класс RedirectResponse создаёт ответ,
который перенаправляет браузер на другой адрес.
Первым параметром передаётся URL, на который
нужно перенаправить пользователя. Вторым
параметром передаётся HTTP-код ответа, третьим -
массив заголовков.
Синтаксис
new RedirectResponse(string $url, int $status = 302, array $headers = [])
Пример
Давайте выполним перенаправление с адреса
'/' на адрес '/article':
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationRedirectResponse;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/', name: 'article_index')]
public function index(): RedirectResponse
{
return new RedirectResponse('/article');
}
}
?>
Результат выполнения кода:
"HTTP/1.0 302 Found"
Пример
Давайте выполним постоянное перенаправление
с кодом 301:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationRedirectResponse;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/old', name: 'article_old')]
public function old(): RedirectResponse
{
return new RedirectResponse('/article', 301);
}
}
?>
Результат выполнения кода:
"HTTP/1.0 301 Moved Permanently"
Пример
Давайте выполним перенаправление и передадим дополнительный заголовок:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationRedirectResponse;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/user', name: 'article_user')]
public function user(): RedirectResponse
{
return new RedirectResponse('/article', 302, [
'X-Custom-Header' => 'abcde'
]);
}
}
?>
Результат выполнения кода:
"HTTP/1.0 302 Found"
Смотрите также
-
метод
getTargetUrl,
который возвращает URL перенаправления -
метод
setTargetUrl,
который задаёт URL перенаправления -
класс
Response,
который представляет базовый HTTP-ответ -
метод
setStatusCode,
который задаёт код состояния ответа