Laravel 请求:获取请求的完整 URL 2 个改进

问题

如何在控制器中获取请求的完整 URL?如 http://domain.com/foo/bar?name=tom 我们想获取整个 URL 包括后面的参数。

回答

可通过调用Illuminate\Http\Request 实例的 urlfullUrl 方法获取请求完整的 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"
}

参考

本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!