1、框架提供了 url()助手函数 ,方便我们生成各种想要 url 地址;(当然使用 URL也是可以 的)

    1. //生成指定的url
    2. $user = User::find(19);
    3. return url('/user/'.$user->id);

    执行结果为:

    http://127.0.0.1:8000/user/101
    

    2、如果 url() 不给参数,可以当作对象执行更多的方法;

    假如访问的URL为:http://127.0.0.1:8000/user/index?name=ZhangSan&id=10001&age=1024

    执行如下方法:

    //得到当前url,不带参数
    return url()->current();    //同:URL::current();【需要:use Illuminate\Support\Facades\URL】;
    //得到当前url,带参数
    return url()->full();        //同:URL::full();
    //得到上一个url
    return url()->previous();     //同:URL::previous();
    

    结果依次为:

    http://127.0.0.1:8000/user/index
    
    http://127.0.0.1:8000/user/index?age=1024&id=10001&name=ZhangSan
    
    //第三个结果模拟测试即可
    

    3、使用 route() 方法,生成命名路由的 url

    //创建路由
    Route::any('/url/{id}','UserController@url')->name('url.id');
    //任意方法中执行:
    return route('url.id', ['id'=>5]);
    

    结果为:

    http://127.0.0.1:8000/url/5
    

    4、也可以直接使用控制器,也可以返回 url

    //使用控制器返回url
    return action('UserController@url', ['id'=>5,'name'=>'ZhangSan']);
    

    结果:

    http://127.0.0.1:8000/url/5?name=ZhangSan
    

    4、生成一个 签名URL,在URL 后面追加一个哈希签名字符串,用于验证;

    return url()->signedRoute('url.id', ['id' => 5]);
    

    执行结果:

    http://127.0.0.1:8000/url/5?signature=c34b75b164b80959641cf6702186d6e3e2a5504e4c03c82722b00c7d092cff04
    

    url/{id} 路由里,可以验证哈希签名

    return request()->hasValidSignature();
    

    如果正确,返回1。

    以上。