Метод fullUrl
Метод fullUrl применяется к объекту запроса Request
и возвращает полный URL в виде строки. Он включает в себя
протокол (http или https), имя хоста, порт (если не стандартный),
путь и все GET-параметры. Метод не принимает параметров
и всегда возвращает строку.
Синтаксис
<?php
$fullUrl = $request->fullUrl();
?>
Пример
Давайте получим полный URL текущего запроса в контроллере:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class ArticleController extends Controller
{
public function index(Request $request)
{
$res = $request->fullUrl();
return view('articles', ['url' => $res]);
}
}
?>
Если текущий запрос был отправлен на URL
https://example.com/articles?page=2&sort=asc,
то метод вернёт:
"https://example.com/articles?page=2&sort=asc"
Пример
Используем метод fullUrl в представлении Blade
для формирования ссылки на текущую страницу с дополнительным параметром:
<p>Current URL: {{ request()->fullUrl() }}</p>
<a href="{{ request()->fullUrl() }}&utm_source=laravel">
Share this page
</a>
При текущем URL https://example.com/articles?category=php
результат выполнения кода будет:
<p>Current URL: https://example.com/articles?category=php</p>
<a href="https://example.com/articles?category=php&utm_source=laravel">
Share this page
</a>
Пример
Получим полный URL в middleware для логирования всех запросов:
<?php
namespace AppHttpMiddleware;
use Closure;
use IlluminateHttpRequest;
use IlluminateSupportFacadesLog;
class LogRequests
{
public function handle(Request $request, Closure $next)
{
$res = $request->fullUrl();
Log::info('Request URL: ' . $res);
return $next($request);
}
}
?>
При запросе к https://example.com/api/users?limit=10
в лог будет записано:
"Request URL: https://example.com/api/users?limit=10"