Laravel 请求:获取请求的完整 URL
问题
如何在控制器中获取请求的完整 URL?如 http://domain.com/foo/bar?name=tom
我们想获取整个 URL 包括后面的参数。
回答
可通过调用Illuminate\Http\Request
实例的 url
或 fullUrl
方法获取请求完整的 URL。 url
方法返回不含有查询字符串的 URL,fullUrl
获取包含查询字符串的 URL:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class TestController extends Controller
{
public function index(Request $request)
{
$url = $request->url();
$fullUrl = $request->fullUrl();
return ['url' => $url, 'fullUrl' => $fullUrl];
}
}
如果请求的路径是 http://domain.com/foo/bar?name=tom
, 返回结果如下:
{
"url": "http://domain.com/foo/bar",
"fullUrl": "http://domain.com/foo/bar?name=tom"
}