Метод getBaseUrl
Метод getBaseUrl класса Request
возвращает базовый URL запроса - часть адреса,
которая идёт после хоста, но без имени скрипта
и без строки запроса. Метод не принимает
параметров и возвращает строку. Если приложение
установлено в корне домена, метод вернёт пустую
строку. Если приложение лежит в подпапке,
метод вернёт эту подпапку.
Синтаксис
public function getBaseUrl(): string
Пример
Давайте получим базовый URL внутри контроллера и вернём его в ответе:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class RequestController extends AbstractController
{
#[Route('/request/base-url', name: 'request_base_url')]
public function baseUrl(Request $request): Response
{
$res = $request->getBaseUrl();
return new Response($res);
}
}
?>
Результат выполнения кода для адреса
/request/base-url, когда приложение
установлено в корне домена:
""
Пример
Давайте сравним базовый URL и базовый путь для одного и того же запроса:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class RequestController extends AbstractController
{
#[Route('/request/compare', name: 'request_compare')]
public function compare(Request $request): Response
{
$baseUrl = $request->getBaseUrl();
$basePath = $request->getBasePath();
return new Response($baseUrl . ' | ' . $basePath);
}
}
?>
Результат выполнения кода для адреса
/request/compare, когда приложение
установлено в подпапке /app:
"/app | /app"
Смотрите также
-
класс
Request,
который представляет HTTP-запрос -
метод
getBasePath,
который возвращает базовый путь запроса -
метод
getUri,
который возвращает полный URI запроса -
метод
getSchemeAndHttpHost,
который возвращает схему и хост запроса