关于 拾年之璐
微信公众号:知行校园汇,点击查看,欢迎关注
其他平台(点击蓝字可访问):
GitHub | Gitee | 哔哩哔哩 | 语雀 | 简书 | 微信小程序 | 知行达摩院
本文专栏:Laravel 点击查看系列文章
1、框架提供了 url()助手函数
,方便我们生成各种想要 url
地址;(当然使用 URL也是可以
的)
//生成指定的url
$user = User::find(19);
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。
以上。